diff --git a/.github/ISSUE_TEMPLATE/bug.md b/.github/ISSUE_TEMPLATE/bug.md index 444463e9ded..bf3b5bf2c0a 100644 --- a/.github/ISSUE_TEMPLATE/bug.md +++ b/.github/ISSUE_TEMPLATE/bug.md @@ -16,9 +16,9 @@ Commit hash: Erigon Command (with flags/config): -Concensus Layer: +Consensus Layer: -Concensus Layer Command (with flags/config): +Consensus Layer Command (with flags/config): Chain/Network: diff --git a/.github/workflows/test-integration.yml b/.github/workflows/test-integration.yml index ec526d3f3fa..dd90ea72721 100644 --- a/.github/workflows/test-integration.yml +++ b/.github/workflows/test-integration.yml @@ -29,6 +29,11 @@ jobs: - name: test-integration run: make test-integration + - name: Test erigon as a library + env: + GIT_COMMIT: ${{ github.event.pull_request.head.sha || github.sha }} + run: make test-erigon-ext GIT_COMMIT=$GIT_COMMIT + # name: history-v3-test-integration # run: make test3-integration diff --git a/Dockerfile b/Dockerfile index 0d6c3dd96c9..77a7ddca25a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -78,7 +78,7 @@ COPY --from=builder /app/build/bin/sentry /usr/local/bin/sentry COPY --from=builder /app/build/bin/state /usr/local/bin/state COPY --from=builder /app/build/bin/txpool /usr/local/bin/txpool COPY --from=builder /app/build/bin/verkle /usr/local/bin/verkle -COPY --from=builder /app/build/bin/caplin-phase1 /usr/local/bin/caplin-phase1 +COPY --from=builder /app/build/bin/caplin /usr/local/bin/caplin COPY --from=builder /app/build/bin/caplin-regression /usr/local/bin/caplin-regression diff --git a/Dockerfile.debian b/Dockerfile.debian index 5d7d4e54968..e3e8c9d5d89 100644 --- a/Dockerfile.debian +++ b/Dockerfile.debian @@ -1,5 +1,5 @@ # syntax = docker/dockerfile:1.2 -FROM docker.io/library/golang:1.19-bullseye AS builder +FROM docker.io/library/golang:1.20-bullseye AS builder RUN apt update RUN apt install -y build-essential git bash ca-certificates libstdc++6 @@ -17,7 +17,7 @@ RUN --mount=type=cache,target=/root/.cache \ make all -FROM docker.io/library/golang:1.19-alpine3.16 AS tools-builder +FROM docker.io/library/golang:1.20-alpine3.17 AS tools-builder RUN apk --no-cache add build-base linux-headers git bash ca-certificates libstdc++ WORKDIR /app @@ -74,7 +74,7 @@ COPY --from=builder /app/build/bin/sentry /usr/local/bin/sentry COPY --from=builder /app/build/bin/state /usr/local/bin/state COPY --from=builder /app/build/bin/txpool /usr/local/bin/txpool COPY --from=builder /app/build/bin/verkle /usr/local/bin/verkle -COPY --from=builder /app/build/bin/caplin-phase1 /usr/local/bin/caplin-phase1 +COPY --from=builder /app/build/bin/caplin /usr/local/bin/caplin COPY --from=builder /app/build/bin/caplin-regression /usr/local/bin/caplin-regression EXPOSE 8545 \ diff --git a/Makefile b/Makefile index e3249efbb34..c7f1cab165d 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -GO = go # if using docker, should not need to be installed/linked +GO ?= go # if using docker, should not need to be installed/linked GOBIN = $(CURDIR)/build/bin UNAME = $(shell uname) # Supported: Darwin, Linux DOCKER := $(shell command -v docker 2> /dev/null) @@ -24,8 +24,7 @@ CGO_CFLAGS += -DMDBX_FORCE_ASSERTIONS=0 # Enable MDBX's asserts by default in 'd #CGO_CFLAGS += -DMDBX_ENV_CHECKPID=0 # Erigon doesn't do fork() syscall CGO_CFLAGS += -O CGO_CFLAGS += -D__BLST_PORTABLE__ -CGO_CFLAGS += -Wno-unknown-warning-option -Wno-enum-int-mismatch -Wno-strict-prototypes -#CGO_CFLAGS += -Wno-error=strict-prototypes # for Clang15, remove it when can https://github.com/ledgerwatch/erigon/issues/6113#issuecomment-1359526277 +CGO_CFLAGS += -Wno-unknown-warning-option -Wno-enum-int-mismatch -Wno-strict-prototypes -Wno-unused-but-set-variable # about netgo see: https://github.com/golang/go/issues/30310#issuecomment-471669125 and https://github.com/golang/go/issues/57757 BUILD_TAGS = nosqlite,noboltdb @@ -42,8 +41,8 @@ default: all ## go-version: print and verify go version go-version: - @if [ $(shell $(GO) version | cut -c 16-17) -lt 19 ]; then \ - echo "minimum required Golang version is 1.19"; \ + @if [ $(shell $(GO) version | cut -c 16-17) -lt 20 ]; then \ + echo "minimum required Golang version is 1.20"; \ exit 1 ;\ fi @@ -106,6 +105,7 @@ erigon: go-version erigon.cmd @rm -f $(GOBIN)/tg # Remove old binary to prevent confusion where users still use it because of the scripts COMMANDS += devnet +COMMANDS += capcli COMMANDS += downloader COMMANDS += hack COMMANDS += integration @@ -119,7 +119,7 @@ COMMANDS += txpool COMMANDS += verkle COMMANDS += evm COMMANDS += sentinel -COMMANDS += caplin-phase1 +COMMANDS += caplin COMMANDS += caplin-regression @@ -140,22 +140,24 @@ db-tools: rm -rf vendor @echo "Run \"$(GOBIN)/mdbx_stat -h\" to get info about mdbx db file." -## test: run unit tests with a 100s timeout -test: +test-erigon-lib: @cd erigon-lib && $(MAKE) test + +test-erigon-ext: + @cd tests/erigon-ext-test && ./test.sh $(GIT_COMMIT) + +## test: run unit tests with a 100s timeout +test: test-erigon-lib $(GOTEST) --timeout 10m -test3: - @cd erigon-lib && $(MAKE) test +test3: test-erigon-lib $(GOTEST) --timeout 10m -tags $(BUILD_TAGS),e3 ## test-integration: run integration tests with a 30m timeout -test-integration: - @cd erigon-lib && $(MAKE) test +test-integration: test-erigon-lib $(GOTEST) --timeout 240m -tags $(BUILD_TAGS),integration -test3-integration: - @cd erigon-lib && $(MAKE) test +test3-integration: test-erigon-lib $(GOTEST) --timeout 240m -tags $(BUILD_TAGS),integration,e3 ## lint-deps: install lint dependencies diff --git a/README.md b/README.md index ab6b6221a21..5f6dafdce77 100644 --- a/README.md +++ b/README.md @@ -55,16 +55,17 @@ System Requirements * Goerli Full node (see `--prune*` flags): 189GB on Beta, 114GB on Alpha (April 2022). -* Gnosis Chain Archive: 370GB (January 2023). +* Gnosis Chain Archive: 600GB (October 2023). -* Polygon Mainnet Archive: 5TB. (April 2022). `--prune.*.older 15768000`: 5.1Tb (Sept 2023). Polygon Mumbai Archive: 1TB. (April 2022). +* Polygon Mainnet Archive: 5TB. (April 2022). `--prune.*.older 15768000`: 5.1Tb (Sept 2023). Polygon Mumbai Archive: + 1TB. (April 2022). SSD or NVMe. Do not recommend HDD - on HDD Erigon will always stay N blocks behind chain tip, but not fall behind. Bear in mind that SSD performance deteriorates when close to capacity. RAM: >=16GB, 64-bit architecture. -[Golang version >= 1.19](https://golang.org/doc/install); GCC 10+ or Clang; On Linux: kernel > v4 +[Golang version >= 1.20](https://golang.org/doc/install); GCC 10+ or Clang; On Linux: kernel > v4 🔬 more details on disk storage [here](https://erigon.substack.com/p/disk-footprint-changes-in-new-erigon?s=r) and [here](https://ledgerwatch.github.io/turbo_geth_release.html#Disk-space). @@ -111,7 +112,8 @@ Running `make help` will list and describe the convenience commands available in ### Datadir structure - chaindata: recent blocks, state, recent state history. low-latency disk recommended. -- snapshots: old blocks, old state history. can symlink/mount it to cheaper disk. mostly immutable. must have ~100gb free space (for merge recent files to bigger one). +- snapshots: old blocks, old state history. can symlink/mount it to cheaper disk. mostly immutable. must have ~100gb + free space (for merge recent files to bigger one). - temp: can grow to ~100gb, but usually empty. can symlink/mount it to cheaper disk. - txpool: pending transactions. safe to remove. - nodes: p2p peers. safe to remove. @@ -141,7 +143,9 @@ int value specifying the highest output log level: LvlTrace = 5 ``` -To set an output dir for logs to be collected on disk, please set `--log.dir.path` If you want to change the filename prodiced from `erigon` you should also set the `--log.dir.prefix` flag to an alternate name. The flag `--log.dir.verbosity` is +To set an output dir for logs to be collected on disk, please set `--log.dir.path` If you want to change the filename +produced from `erigon` you should also set the `--log.dir.prefix` flag to an alternate name. The +flag `--log.dir.verbosity` is also available to control the verbosity of this logging, with the same int value as above, or the string value e.g. ' debug' or 'info'. Default verbosity is 'debug' (4), for disk logging. @@ -210,7 +214,7 @@ Windows users may run erigon in 3 possible ways: build on windows : * [Git](https://git-scm.com/downloads) for Windows must be installed. If you're cloning this repository is very likely you already have it - * [GO Programming Language](https://golang.org/dl/) must be installed. Minimum required version is 1.19 + * [GO Programming Language](https://golang.org/dl/) must be installed. Minimum required version is 1.20 * GNU CC Compiler at least version 10 (is highly suggested that you install `chocolatey` package manager - see following point) * If you need to build MDBX tools (i.e. `.\wmake.ps1 db-tools`) @@ -530,13 +534,10 @@ Detailed explanation: [./docs/programmers_guide/db_faq.md](./docs/programmers_gu ### Default Ports and Firewalls - - #### `erigon` ports - | Component | Port | Protocol | Purpose | Should Expose | -| --------- | ----- | --------- | --------------------------- | ------------- | +|-----------|-------|-----------|-----------------------------|---------------| | engine | 9090 | TCP | gRPC Server | Private | | engine | 42069 | TCP & UDP | Snap sync (Bittorrent) | Public | | engine | 8551 | TCP | Engine API (JWT auth) | Private | @@ -545,42 +546,31 @@ Detailed explanation: [./docs/programmers_guide/db_faq.md](./docs/programmers_gu | sentry | 9091 | TCP | incoming gRPC Connections | Private | | rpcdaemon | 8545 | TCP | HTTP & WebSockets & GraphQL | Private | - - - Typically, 30303 and 30304 are exposed to the internet to allow incoming peering connections. 9090 is exposed only internally for rpcdaemon or other connections, (e.g. rpcdaemon -> erigon). Port 8551 (JWT authenticated) is exposed only internally for [Engine API] JSON-RPC queries from the Consensus Layer node. - - - - #### `caplin` ports + | Component | Port | Protocol | Purpose | Should Expose | -| --------- | ---- | -------- | ---------------- | ------------- | +|-----------|------|----------|------------------|---------------| | sentinel | 4000 | UDP | Peering | Public | | sentinel | 4001 | TCP | Peering | Public | -| sentinel | 7777 | TCP | gRPC Connections | Private | - If you are using `--internalcl` aka `caplin` as your consensus client, then also look at the chart above - #### `shared` ports -| Component | Port | Protocol | Purpose | Should Expose | -| --------- | ----- | --------- | --------------------------- | ------------- | -| all | 6060 | TCP | pprof | Private | -| all | 6060 | TCP | metrics | Private | - +| Component | Port | Protocol | Purpose | Should Expose | +|-----------|------|----------|---------|---------------| +| all | 6060 | TCP | pprof | Private | +| all | 6060 | TCP | metrics | Private | Optional flags can be enabled that enable pprof or metrics (or both) - however, they both run on 6060 by default, so you'll have to change one if you want to run both at the same time. use `--help` with the binary for more info. - #### `other` ports Reserved for future use: **gRPC ports**: `9092` consensus engine, `9093` snapshot downloader, `9094` TxPool @@ -608,15 +598,16 @@ Device Benchmark Testing RFC 2544 RFC 922, Section 7 ``` -Same in [IpTables syntax](https://ethereum.stackexchange.com/questions/6386/how-to-prevent-being-blacklisted-for-running-an-ethereum-client/13068#13068) +Same +in [IpTables syntax](https://ethereum.stackexchange.com/questions/6386/how-to-prevent-being-blacklisted-for-running-an-ethereum-client/13068#13068) ### How to get diagnostic for bug report? - Get stack trace: `kill -SIGUSR1 `, get trace and stop: `kill -6 ` - Get CPU profiling: add `--pprof flag` - run `go tool pprof -png http://127.0.0.1:6060/debug/pprof/profile\?seconds\=20 > cpu.png` + run `go tool pprof -png http://127.0.0.1:6060/debug/pprof/profile\?seconds\=20 > cpu.png` - Get RAM profiling: add `--pprof flag` - run `go tool pprof -inuse_space -png http://127.0.0.1:6060/debug/pprof/heap > mem.png` + run `go tool pprof -inuse_space -png http://127.0.0.1:6060/debug/pprof/heap > mem.png` ### How to run local devnet? @@ -630,6 +621,13 @@ UID/GID (1000). More details in [post](https://www.fullstaq.com/knowledge-hub/blogs/docker-and-the-host-filesystem-owner-matching-problem) +### How to run public RPC api + +- `--txpool.nolocals=true` +- don't add `admin` in `--http.api` list +- to increase throughput may need + increase/decrease: `--db.read.concurrency`, `--rpc.batch.concurrency`, `--rpc.batch.limit` + ### Run RaspberyPI https://github.com/mathMakesArt/Erigon-on-RPi-4 @@ -644,7 +642,8 @@ Getting in touch ### Erigon Discord Server -The main discussions are happening on our Discord server. To get an invite, send an email to `bloxster [at] proton.me` with +The main discussions are happening on our Discord server. To get an invite, send an email to `bloxster [at] proton.me` +with your name, occupation, a brief explanation of why you want to join the Discord, and how you heard about Erigon. ### Reporting security issues/concerns @@ -671,20 +670,22 @@ Next tools show correct memory usage of Erigon: - `vmmap -summary PID | grep -i "Physical footprint"`. Without `grep` you can see details - `section MALLOC ZONE column Resident Size` shows App memory usage, `section REGION TYPE column Resident Size` - shows OS pages cache size. + shows OS pages cache size. - `Prometheus` dashboard shows memory of Go app without OS pages cache (`make prometheus`, open in - browser `localhost:3000`, credentials `admin/admin`) + browser `localhost:3000`, credentials `admin/admin`) - `cat /proc//smaps` - Erigon uses ~4Gb of RAM during genesis sync and ~1Gb during normal work. OS pages cache can utilize unlimited amount of - memory. - - **Warning:** Multiple instances of Erigon on same machine will touch Disk concurrently, it impacts performance - one of - main Erigon optimisations: "reduce Disk random access". - "Blocks Execution stage" still does many random reads - this is reason why it's slowest stage. We do not recommend - running - multiple genesis syncs on same Disk. If genesis sync passed, then it's fine to run multiple Erigon instances on same - Disk. + Erigon uses ~4Gb of RAM during genesis sync and ~1Gb during normal work. OS pages cache can utilize unlimited amount + of + memory. + + **Warning:** Multiple instances of Erigon on same machine will touch Disk concurrently, it impacts performance - one + of + main Erigon optimisations: "reduce Disk random access". + "Blocks Execution stage" still does many random reads - this is reason why it's slowest stage. We do not recommend + running + multiple genesis syncs on same Disk. If genesis sync passed, then it's fine to run multiple Erigon instances on same + Disk. ### Blocks Execution is slow on cloud-network-drives diff --git a/accounts/abi/abi_test.go b/accounts/abi/abi_test.go index 56414a88050..2ca829d7759 100644 --- a/accounts/abi/abi_test.go +++ b/accounts/abi/abi_test.go @@ -1137,7 +1137,7 @@ func TestUnpackRevert(t *testing.T) { } for index, c := range cases { t.Run(fmt.Sprintf("case %d", index), func(t *testing.T) { - got, err := UnpackRevert(common.Hex2Bytes(c.input)) + got, err := UnpackRevert(libcommon.Hex2Bytes(c.input)) if c.expectErr != nil { if err == nil { t.Fatalf("Expected non-nil error") diff --git a/accounts/abi/bind/backends/simulated_test.go b/accounts/abi/bind/backends/simulated_test.go index 0d33ca281b9..0f14ad4703a 100644 --- a/accounts/abi/bind/backends/simulated_test.go +++ b/accounts/abi/bind/backends/simulated_test.go @@ -467,7 +467,7 @@ func TestSimulatedBackend_EstimateGas(t *testing.T) { Gas: 0, GasPrice: u256.Num0, Value: nil, - Data: common.Hex2Bytes("d8b98391"), + Data: libcommon.Hex2Bytes("d8b98391"), }, 0, errors.New("execution reverted: revert reason"), "0x08c379a00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000d72657665727420726561736f6e00000000000000000000000000000000000000"}, {"PureRevert", ethereum.CallMsg{ @@ -476,7 +476,7 @@ func TestSimulatedBackend_EstimateGas(t *testing.T) { Gas: 0, GasPrice: u256.Num0, Value: nil, - Data: common.Hex2Bytes("aa8b1d30"), + Data: libcommon.Hex2Bytes("aa8b1d30"), }, 0, errors.New("execution reverted"), nil}, {"OOG", ethereum.CallMsg{ @@ -485,7 +485,7 @@ func TestSimulatedBackend_EstimateGas(t *testing.T) { Gas: 100000, GasPrice: u256.Num0, Value: nil, - Data: common.Hex2Bytes("50f6fe34"), + Data: libcommon.Hex2Bytes("50f6fe34"), }, 0, errors.New("gas required exceeds allowance (100000)"), nil}, {"Assert", ethereum.CallMsg{ @@ -494,7 +494,7 @@ func TestSimulatedBackend_EstimateGas(t *testing.T) { Gas: 100000, GasPrice: u256.Num0, Value: nil, - Data: common.Hex2Bytes("b9b046f9"), + Data: libcommon.Hex2Bytes("b9b046f9"), }, 0, errors.New("invalid opcode: INVALID"), nil}, {"Valid", ethereum.CallMsg{ @@ -503,7 +503,7 @@ func TestSimulatedBackend_EstimateGas(t *testing.T) { Gas: 100000, GasPrice: u256.Num0, Value: nil, - Data: common.Hex2Bytes("e09fface"), + Data: libcommon.Hex2Bytes("e09fface"), }, 21275, nil, nil}, } for _, c := range cases { diff --git a/accounts/abi/bind/base_test.go b/accounts/abi/bind/base_test.go index ca2d4e19e31..e16c4ad0485 100644 --- a/accounts/abi/bind/base_test.go +++ b/accounts/abi/bind/base_test.go @@ -18,6 +18,7 @@ package bind_test import ( "context" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "math/big" "reflect" "strings" @@ -28,7 +29,6 @@ import ( ethereum "github.com/ledgerwatch/erigon" "github.com/ledgerwatch/erigon/accounts/abi" "github.com/ledgerwatch/erigon/accounts/abi/bind" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/crypto" "github.com/ledgerwatch/erigon/rlp" diff --git a/accounts/abi/pack_test.go b/accounts/abi/pack_test.go index 0c745016f9e..49f576137c4 100644 --- a/accounts/abi/pack_test.go +++ b/accounts/abi/pack_test.go @@ -185,25 +185,25 @@ func TestPackNumber(t *testing.T) { packed []byte }{ // Protocol limits - {reflect.ValueOf(0), common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000000")}, - {reflect.ValueOf(1), common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")}, - {reflect.ValueOf(-1), common.Hex2Bytes("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff")}, + {reflect.ValueOf(0), libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000000")}, + {reflect.ValueOf(1), libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")}, + {reflect.ValueOf(-1), libcommon.Hex2Bytes("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff")}, // Type corner cases - {reflect.ValueOf(uint8(math.MaxUint8)), common.Hex2Bytes("00000000000000000000000000000000000000000000000000000000000000ff")}, - {reflect.ValueOf(uint16(math.MaxUint16)), common.Hex2Bytes("000000000000000000000000000000000000000000000000000000000000ffff")}, - {reflect.ValueOf(uint32(math.MaxUint32)), common.Hex2Bytes("00000000000000000000000000000000000000000000000000000000ffffffff")}, - {reflect.ValueOf(uint64(math.MaxUint64)), common.Hex2Bytes("000000000000000000000000000000000000000000000000ffffffffffffffff")}, - - {reflect.ValueOf(int8(math.MaxInt8)), common.Hex2Bytes("000000000000000000000000000000000000000000000000000000000000007f")}, - {reflect.ValueOf(int16(math.MaxInt16)), common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000007fff")}, - {reflect.ValueOf(int32(math.MaxInt32)), common.Hex2Bytes("000000000000000000000000000000000000000000000000000000007fffffff")}, - {reflect.ValueOf(int64(math.MaxInt64)), common.Hex2Bytes("0000000000000000000000000000000000000000000000007fffffffffffffff")}, - - {reflect.ValueOf(int8(math.MinInt8)), common.Hex2Bytes("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80")}, - {reflect.ValueOf(int16(math.MinInt16)), common.Hex2Bytes("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000")}, - {reflect.ValueOf(int32(math.MinInt32)), common.Hex2Bytes("ffffffffffffffffffffffffffffffffffffffffffffffffffffffff80000000")}, - {reflect.ValueOf(int64(math.MinInt64)), common.Hex2Bytes("ffffffffffffffffffffffffffffffffffffffffffffffff8000000000000000")}, + {reflect.ValueOf(uint8(math.MaxUint8)), libcommon.Hex2Bytes("00000000000000000000000000000000000000000000000000000000000000ff")}, + {reflect.ValueOf(uint16(math.MaxUint16)), libcommon.Hex2Bytes("000000000000000000000000000000000000000000000000000000000000ffff")}, + {reflect.ValueOf(uint32(math.MaxUint32)), libcommon.Hex2Bytes("00000000000000000000000000000000000000000000000000000000ffffffff")}, + {reflect.ValueOf(uint64(math.MaxUint64)), libcommon.Hex2Bytes("000000000000000000000000000000000000000000000000ffffffffffffffff")}, + + {reflect.ValueOf(int8(math.MaxInt8)), libcommon.Hex2Bytes("000000000000000000000000000000000000000000000000000000000000007f")}, + {reflect.ValueOf(int16(math.MaxInt16)), libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000007fff")}, + {reflect.ValueOf(int32(math.MaxInt32)), libcommon.Hex2Bytes("000000000000000000000000000000000000000000000000000000007fffffff")}, + {reflect.ValueOf(int64(math.MaxInt64)), libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000007fffffffffffffff")}, + + {reflect.ValueOf(int8(math.MinInt8)), libcommon.Hex2Bytes("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80")}, + {reflect.ValueOf(int16(math.MinInt16)), libcommon.Hex2Bytes("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000")}, + {reflect.ValueOf(int32(math.MinInt32)), libcommon.Hex2Bytes("ffffffffffffffffffffffffffffffffffffffffffffffffffffffff80000000")}, + {reflect.ValueOf(int64(math.MinInt64)), libcommon.Hex2Bytes("ffffffffffffffffffffffffffffffffffffffffffffffff8000000000000000")}, } for i, tt := range tests { packed := packNum(tt.value) diff --git a/accounts/abi/packing_test.go b/accounts/abi/packing_test.go index d960223f897..4248596079f 100644 --- a/accounts/abi/packing_test.go +++ b/accounts/abi/packing_test.go @@ -20,8 +20,6 @@ import ( "math/big" libcommon "github.com/ledgerwatch/erigon-lib/common" - - "github.com/ledgerwatch/erigon/common" ) type packUnpackTest struct { @@ -378,7 +376,7 @@ var packUnpackTests = []packUnpackTest{ packed: "0000000000000000000000000000000000000000000000000000000000000020" + "0000000000000000000000000000000000000000000000000000000000000020" + "0100000000000000000000000000000000000000000000000000000000000000", - unpacked: common.Hex2Bytes("0100000000000000000000000000000000000000000000000000000000000000"), + unpacked: libcommon.Hex2Bytes("0100000000000000000000000000000000000000000000000000000000000000"), }, { def: `[{"type": "bytes32"}]`, diff --git a/accounts/abi/unpack_test.go b/accounts/abi/unpack_test.go index 880fb589335..083f329b75e 100644 --- a/accounts/abi/unpack_test.go +++ b/accounts/abi/unpack_test.go @@ -258,8 +258,8 @@ func TestUnpackIntoInterfaceSetDynamicArrayOutput(t *testing.T) { } var ( - marshalledReturn32 = common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000230783132333435363738393000000000000000000000000000000000000000003078303938373635343332310000000000000000000000000000000000000000") - marshalledReturn15 = common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000230783031323334350000000000000000000000000000000000000000000000003078393837363534000000000000000000000000000000000000000000000000") + marshalledReturn32 = libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000230783132333435363738393000000000000000000000000000000000000000003078303938373635343332310000000000000000000000000000000000000000") + marshalledReturn15 = libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000230783031323334350000000000000000000000000000000000000000000000003078393837363534000000000000000000000000000000000000000000000000") out32 [][32]byte out15 [][15]byte @@ -273,11 +273,11 @@ func TestUnpackIntoInterfaceSetDynamicArrayOutput(t *testing.T) { if len(out32) != 2 { t.Fatalf("expected array with 2 values, got %d", len(out32)) } - expected := common.Hex2Bytes("3078313233343536373839300000000000000000000000000000000000000000") + expected := libcommon.Hex2Bytes("3078313233343536373839300000000000000000000000000000000000000000") if !bytes.Equal(out32[0][:], expected) { t.Errorf("expected %x, got %x\n", expected, out32[0]) } - expected = common.Hex2Bytes("3078303938373635343332310000000000000000000000000000000000000000") + expected = libcommon.Hex2Bytes("3078303938373635343332310000000000000000000000000000000000000000") if !bytes.Equal(out32[1][:], expected) { t.Errorf("expected %x, got %x\n", expected, out32[1]) } @@ -290,11 +290,11 @@ func TestUnpackIntoInterfaceSetDynamicArrayOutput(t *testing.T) { if len(out15) != 2 { t.Fatalf("expected array with 2 values, got %d", len(out15)) } - expected = common.Hex2Bytes("307830313233343500000000000000") + expected = libcommon.Hex2Bytes("307830313233343500000000000000") if !bytes.Equal(out15[0][:], expected) { t.Errorf("expected %x, got %x\n", expected, out15[0]) } - expected = common.Hex2Bytes("307839383736353400000000000000") + expected = libcommon.Hex2Bytes("307839383736353400000000000000") if !bytes.Equal(out15[1][:], expected) { t.Errorf("expected %x, got %x\n", expected, out15[1]) } @@ -314,9 +314,9 @@ func methodMultiReturn(require *require.Assertions) (ABI, []byte, methodMultiOut require.NoError(err) // using buff to make the code readable buff := new(bytes.Buffer) - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")) - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000040")) - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000005")) + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")) + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000040")) + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000005")) buff.Write(common.RightPadBytes([]byte(expected.String), 32)) return abi, buff.Bytes(), expected } @@ -402,8 +402,8 @@ func TestMultiReturnWithArray(t *testing.T) { t.Fatal(err) } buff := new(bytes.Buffer) - buff.Write(common.Hex2Bytes("000000000000000000000000000000000000000000000000000000000000000900000000000000000000000000000000000000000000000000000000000000090000000000000000000000000000000000000000000000000000000000000009")) - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000008")) + buff.Write(libcommon.Hex2Bytes("000000000000000000000000000000000000000000000000000000000000000900000000000000000000000000000000000000000000000000000000000000090000000000000000000000000000000000000000000000000000000000000009")) + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000008")) ret1, ret1Exp := new([3]uint64), [3]uint64{9, 9, 9} ret2, ret2Exp := new(uint64), uint64(8) @@ -425,7 +425,7 @@ func TestMultiReturnWithStringArray(t *testing.T) { t.Fatal(err) } buff := new(bytes.Buffer) - buff.Write(common.Hex2Bytes("000000000000000000000000000000000000000000000000000000005c1b78ea0000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000001a055690d9db80000000000000000000000000000ab1257528b3782fb40d7ed5f72e624b744dffb2f00000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000008457468657265756d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001048656c6c6f2c20457468657265756d2100000000000000000000000000000000")) + buff.Write(libcommon.Hex2Bytes("000000000000000000000000000000000000000000000000000000005c1b78ea0000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000001a055690d9db80000000000000000000000000000ab1257528b3782fb40d7ed5f72e624b744dffb2f00000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000008457468657265756d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001048656c6c6f2c20457468657265756d2100000000000000000000000000000000")) temp, _ := big.NewInt(0).SetString("30000000000000000000", 10) ret1, ret1Exp := new([3]*big.Int), [3]*big.Int{big.NewInt(1545304298), big.NewInt(6), temp} ret2, ret2Exp := new(libcommon.Address), libcommon.HexToAddress("ab1257528b3782fb40d7ed5f72e624b744dffb2f") @@ -455,18 +455,18 @@ func TestMultiReturnWithStringSlice(t *testing.T) { t.Fatal(err) } buff := new(bytes.Buffer) - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000040")) // output[0] offset - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000120")) // output[1] offset - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000002")) // output[0] length - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000040")) // output[0][0] offset - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000080")) // output[0][1] offset - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000008")) // output[0][0] length - buff.Write(common.Hex2Bytes("657468657265756d000000000000000000000000000000000000000000000000")) // output[0][0] value - buff.Write(common.Hex2Bytes("000000000000000000000000000000000000000000000000000000000000000b")) // output[0][1] length - buff.Write(common.Hex2Bytes("676f2d657468657265756d000000000000000000000000000000000000000000")) // output[0][1] value - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000002")) // output[1] length - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000064")) // output[1][0] value - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000065")) // output[1][1] value + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000040")) // output[0] offset + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000120")) // output[1] offset + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000002")) // output[0] length + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000040")) // output[0][0] offset + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000080")) // output[0][1] offset + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000008")) // output[0][0] length + buff.Write(libcommon.Hex2Bytes("657468657265756d000000000000000000000000000000000000000000000000")) // output[0][0] value + buff.Write(libcommon.Hex2Bytes("000000000000000000000000000000000000000000000000000000000000000b")) // output[0][1] length + buff.Write(libcommon.Hex2Bytes("676f2d657468657265756d000000000000000000000000000000000000000000")) // output[0][1] value + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000002")) // output[1] length + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000064")) // output[1][0] value + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000065")) // output[1][1] value ret1, ret1Exp := new([]string), []string{"ethereum", "go-ethereum"} ret2, ret2Exp := new([]*big.Int), []*big.Int{big.NewInt(100), big.NewInt(101)} if err := abi.UnpackIntoInterface(&[]interface{}{ret1, ret2}, "multi", buff.Bytes()); err != nil { @@ -493,14 +493,14 @@ func TestMultiReturnWithDeeplyNestedArray(t *testing.T) { buff := new(bytes.Buffer) // construct the test array, each 3 char element is joined with 61 '0' chars, // to from the ((3 + 61) * 0.5) = 32 byte elements in the array. - buff.Write(common.Hex2Bytes(strings.Join([]string{ + buff.Write(libcommon.Hex2Bytes(strings.Join([]string{ "", //empty, to apply the 61-char separator to the first element as well. "111", "112", "113", "121", "122", "123", "211", "212", "213", "221", "222", "223", "311", "312", "313", "321", "322", "323", "411", "412", "413", "421", "422", "423", }, "0000000000000000000000000000000000000000000000000000000000000"))) - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000009876")) + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000009876")) ret1, ret1Exp := new([4][2][3]uint64), [4][2][3]uint64{ {{0x111, 0x112, 0x113}, {0x121, 0x122, 0x123}}, @@ -539,14 +539,14 @@ func TestUnmarshal(t *testing.T) { buff := new(bytes.Buffer) // marshall mixed bytes (mixedBytes) - p0, p0Exp := []byte{}, common.Hex2Bytes("01020000000000000000") - p1, p1Exp := [32]byte{}, common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000ddeeff") + p0, p0Exp := []byte{}, libcommon.Hex2Bytes("01020000000000000000") + p1, p1Exp := [32]byte{}, libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000ddeeff") mixedBytes := []interface{}{&p0, &p1} - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000040")) - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000ddeeff")) - buff.Write(common.Hex2Bytes("000000000000000000000000000000000000000000000000000000000000000a")) - buff.Write(common.Hex2Bytes("0102000000000000000000000000000000000000000000000000000000000000")) + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000040")) + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000ddeeff")) + buff.Write(libcommon.Hex2Bytes("000000000000000000000000000000000000000000000000000000000000000a")) + buff.Write(libcommon.Hex2Bytes("0102000000000000000000000000000000000000000000000000000000000000")) err = abi.UnpackIntoInterface(&mixedBytes, "mixedBytes", buff.Bytes()) if err != nil { @@ -563,7 +563,7 @@ func TestUnmarshal(t *testing.T) { // marshal int var Int *big.Int - err = abi.UnpackIntoInterface(&Int, "int", common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")) + err = abi.UnpackIntoInterface(&Int, "int", libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")) if err != nil { t.Error(err) } @@ -574,7 +574,7 @@ func TestUnmarshal(t *testing.T) { // marshal bool var Bool bool - err = abi.UnpackIntoInterface(&Bool, "bool", common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")) + err = abi.UnpackIntoInterface(&Bool, "bool", libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")) if err != nil { t.Error(err) } @@ -585,8 +585,8 @@ func TestUnmarshal(t *testing.T) { // marshal dynamic bytes max length 32 buff.Reset() - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000020")) - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000020")) + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000020")) + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000020")) bytesOut := common.RightPadBytes([]byte("hello"), 32) buff.Write(bytesOut) @@ -602,8 +602,8 @@ func TestUnmarshal(t *testing.T) { // marshall dynamic bytes max length 64 buff.Reset() - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000020")) - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000040")) + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000020")) + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000040")) bytesOut = common.RightPadBytes([]byte("hello"), 64) buff.Write(bytesOut) @@ -618,8 +618,8 @@ func TestUnmarshal(t *testing.T) { // marshall dynamic bytes max length 64 buff.Reset() - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000020")) - buff.Write(common.Hex2Bytes("000000000000000000000000000000000000000000000000000000000000003f")) + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000020")) + buff.Write(libcommon.Hex2Bytes("000000000000000000000000000000000000000000000000000000000000003f")) bytesOut = common.RightPadBytes([]byte("hello"), 64) buff.Write(bytesOut) @@ -640,8 +640,8 @@ func TestUnmarshal(t *testing.T) { // marshal dynamic bytes length 5 buff.Reset() - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000020")) - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000005")) + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000020")) + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000005")) buff.Write(common.RightPadBytes([]byte("hello"), 32)) err = abi.UnpackIntoInterface(&Bytes, "bytes", buff.Bytes()) @@ -670,7 +670,7 @@ func TestUnmarshal(t *testing.T) { // marshal error buff.Reset() - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000020")) + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000020")) err = abi.UnpackIntoInterface(&Bytes, "bytes", buff.Bytes()) if err == nil { t.Error("expected error") @@ -682,9 +682,9 @@ func TestUnmarshal(t *testing.T) { } buff.Reset() - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")) - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000002")) - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000003")) + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")) + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000002")) + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000003")) // marshal int array var intArray [3]*big.Int err = abi.UnpackIntoInterface(&intArray, "intArraySingle", buff.Bytes()) @@ -703,9 +703,9 @@ func TestUnmarshal(t *testing.T) { } // marshal address slice buff.Reset() - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000020")) // offset - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")) // size - buff.Write(common.Hex2Bytes("0000000000000000000000000100000000000000000000000000000000000000")) + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000020")) // offset + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")) // size + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000100000000000000000000000000000000000000")) var outAddr []libcommon.Address err = abi.UnpackIntoInterface(&outAddr, "addressSliceSingle", buff.Bytes()) @@ -723,13 +723,13 @@ func TestUnmarshal(t *testing.T) { // marshal multiple address slice buff.Reset() - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000040")) // offset - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000080")) // offset - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")) // size - buff.Write(common.Hex2Bytes("0000000000000000000000000100000000000000000000000000000000000000")) - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000002")) // size - buff.Write(common.Hex2Bytes("0000000000000000000000000200000000000000000000000000000000000000")) - buff.Write(common.Hex2Bytes("0000000000000000000000000300000000000000000000000000000000000000")) + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000040")) // offset + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000080")) // offset + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")) // size + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000100000000000000000000000000000000000000")) + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000002")) // size + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000200000000000000000000000000000000000000")) + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000300000000000000000000000000000000000000")) var outAddrStruct struct { A []libcommon.Address @@ -761,7 +761,7 @@ func TestUnmarshal(t *testing.T) { // marshal invalid address slice buff.Reset() - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000100")) + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000100")) err = abi.UnpackIntoInterface(&outAddr, "addressSliceSingle", buff.Bytes()) if err == nil { @@ -777,8 +777,8 @@ func TestUnpackTuple(t *testing.T) { } buff := new(bytes.Buffer) - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")) // ret[a] = 1 - buff.Write(common.Hex2Bytes("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff")) // ret[b] = -1 + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")) // ret[a] = 1 + buff.Write(libcommon.Hex2Bytes("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff")) // ret[b] = -1 // If the result is single tuple, use struct as return value container directly. v := struct { @@ -810,21 +810,21 @@ func TestUnpackTuple(t *testing.T) { t.Fatal(err) } buff.Reset() - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000080")) // s offset - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000000")) // t.X = 0 - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")) // t.Y = 1 - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")) // a = 1 - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")) // s.A = 1 - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000060")) // s.B offset - buff.Write(common.Hex2Bytes("00000000000000000000000000000000000000000000000000000000000000c0")) // s.C offset - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000002")) // s.B length - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")) // s.B[0] = 1 - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000002")) // s.B[0] = 2 - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000002")) // s.C length - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")) // s.C[0].X - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000002")) // s.C[0].Y - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000002")) // s.C[1].X - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")) // s.C[1].Y + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000080")) // s offset + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000000")) // t.X = 0 + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")) // t.Y = 1 + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")) // a = 1 + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")) // s.A = 1 + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000060")) // s.B offset + buff.Write(libcommon.Hex2Bytes("00000000000000000000000000000000000000000000000000000000000000c0")) // s.C offset + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000002")) // s.B length + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")) // s.B[0] = 1 + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000002")) // s.B[0] = 2 + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000002")) // s.C length + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")) // s.C[0].X + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000002")) // s.C[0].Y + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000002")) // s.C[1].X + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")) // s.C[1].Y type T struct { X *big.Int `abi:"x"` diff --git a/cl/abstract/beacon_state.go b/cl/abstract/beacon_state.go index da949eed384..c22994dfbef 100644 --- a/cl/abstract/beacon_state.go +++ b/cl/abstract/beacon_state.go @@ -43,6 +43,24 @@ type BeaconStateExtension interface { } type BeaconStateBasic interface { + BeaconStateMinimal + BeaconStateExtra + BeaconStateMutator + BeaconStateSSZ + + Clone() clonable.Clonable + DebugPrint(prefix string) +} + +type BeaconStateSSZ interface { + BlockRoot() ([32]byte, error) + EncodeSSZ(buf []byte) ([]byte, error) + DecodeSSZ(buf []byte, version int) error + EncodingSizeSSZ() (size int) + HashSSZ() (out [32]byte, err error) +} + +type BeaconStateMutator interface { SetVersion(version clparams.StateVersion) SetSlot(slot uint64) SetFork(fork *cltypes.Fork) @@ -56,8 +74,6 @@ type BeaconStateBasic interface { SetActivationEpochForValidatorAtIndex(index int, epoch uint64) SetActivationEligibilityEpochForValidatorAtIndex(index int, epoch uint64) SetEth1Data(eth1Data *cltypes.Eth1Data) - AddEth1DataVote(vote *cltypes.Eth1Data) - ResetEth1DataVotes() SetEth1DepositIndex(eth1DepositIndex uint64) SetValidatorSlashed(index int, slashed bool) error SetValidatorMinCurrentInclusionDelayAttestation(index int, value *solid.PendingAttestation) error @@ -69,13 +85,11 @@ type BeaconStateBasic interface { SetValidatorIsPreviousMatchingTargetAttester(index int, value bool) error SetValidatorIsPreviousMatchingHeadAttester(index int, value bool) error SetValidatorBalance(index int, balance uint64) error - AddValidator(validator solid.Validator, balance uint64) SetRandaoMixAt(index int, mix common.Hash) SetSlashingSegmentAt(index int, segment uint64) - IncrementSlashingSegmentAt(index int, delta uint64) SetEpochParticipationForValidatorIndex(isCurrentEpoch bool, index int, flags cltypes.ParticipationFlags) SetValidatorAtIndex(index int, validator solid.Validator) - ResetEpochParticipation() + SetJustificationBits(justificationBits cltypes.JustificationBits) SetPreviousJustifiedCheckpoint(previousJustifiedCheckpoint solid.Checkpoint) SetCurrentJustifiedCheckpoint(currentJustifiedCheckpoint solid.Checkpoint) @@ -85,41 +99,39 @@ type BeaconStateBasic interface { SetLatestExecutionPayloadHeader(header *cltypes.Eth1Header) SetNextWithdrawalIndex(index uint64) SetNextWithdrawalValidatorIndex(index uint64) - ResetHistoricalSummaries() - AddHistoricalSummary(summary *cltypes.HistoricalSummary) - AddHistoricalRoot(root common.Hash) SetInactivityScores(scores []uint64) - AddInactivityScore(score uint64) SetValidatorInactivityScore(index int, score uint64) error SetCurrentEpochParticipationFlags(flags []cltypes.ParticipationFlags) SetPreviousEpochParticipationFlags(flags []cltypes.ParticipationFlags) + SetPreviousEpochAttestations(attestations *solid.ListSSZ[*solid.PendingAttestation]) + + AddEth1DataVote(vote *cltypes.Eth1Data) + AddValidator(validator solid.Validator, balance uint64) + AddHistoricalSummary(summary *cltypes.HistoricalSummary) + AddHistoricalRoot(root common.Hash) + AddInactivityScore(score uint64) AddCurrentEpochParticipationFlags(flags cltypes.ParticipationFlags) AddPreviousEpochParticipationFlags(flags cltypes.ParticipationFlags) AddPreviousEpochParticipationAt(index int, delta byte) AddCurrentEpochAtteastation(attestation *solid.PendingAttestation) AddPreviousEpochAttestation(attestation *solid.PendingAttestation) + + IncrementSlashingSegmentAt(index int, delta uint64) + + AppendValidator(in solid.Validator) + + ResetEth1DataVotes() + ResetEpochParticipation() + ResetHistoricalSummaries() ResetCurrentEpochAttestations() - SetPreviousEpochAttestations(attestations *solid.ListSSZ[*solid.PendingAttestation]) ResetPreviousEpochAttestations() - BeaconConfig() *clparams.BeaconChainConfig - Version() clparams.StateVersion - GenesisTime() uint64 - GenesisValidatorsRoot() common.Hash - Slot() uint64 - PreviousSlot() uint64 - Fork() *cltypes.Fork - LatestBlockHeader() cltypes.BeaconBlockHeader - BlockRoots() solid.HashVectorSSZ - StateRoots() solid.HashVectorSSZ - Eth1Data() *cltypes.Eth1Data - Eth1DataVotes() *solid.ListSSZ[*cltypes.Eth1Data] - Eth1DepositIndex() uint64 +} + +type BeaconStateExtra interface { ValidatorLength() int - AppendValidator(in solid.Validator) - ForEachValidator(fn func(v solid.Validator, idx int, total int) bool) - ValidatorForValidatorIndex(index int) (solid.Validator, error) - ForEachBalance(fn func(v uint64, idx int, total int) bool) ValidatorBalance(index int) (uint64, error) + RandaoMixes() solid.HashVectorSSZ + ForEachBalance(fn func(v uint64, idx int, total int) bool) ValidatorExitEpoch(index int) (uint64, error) ValidatorWithdrawableEpoch(index int) (uint64, error) ValidatorEffectiveBalance(index int) (uint64, error) @@ -131,36 +143,52 @@ type BeaconStateBasic interface { ValidatorIsPreviousMatchingSourceAttester(idx int) (bool, error) ValidatorIsPreviousMatchingTargetAttester(idx int) (bool, error) ValidatorIsPreviousMatchingHeadAttester(idx int) (bool, error) - RandaoMixes() solid.HashVectorSSZ GetRandaoMixes(epoch uint64) [32]byte GetRandaoMix(index int) [32]byte + EpochParticipationForValidatorIndex(isCurrentEpoch bool, index int) cltypes.ParticipationFlags + GetBlockRootAtSlot(slot uint64) (common.Hash, error) + GetDomain(domainType [4]byte, epoch uint64) ([]byte, error) +} + +type BeaconStateMinimal interface { + BeaconConfig() *clparams.BeaconChainConfig + Version() clparams.StateVersion + GenesisTime() uint64 + GenesisValidatorsRoot() common.Hash + Slot() uint64 + PreviousSlot() uint64 + Fork() *cltypes.Fork + LatestBlockHeader() cltypes.BeaconBlockHeader + BlockRoots() solid.HashVectorSSZ + StateRoots() solid.HashVectorSSZ + Eth1Data() *cltypes.Eth1Data + Eth1DataVotes() *solid.ListSSZ[*cltypes.Eth1Data] + Eth1DepositIndex() uint64 + + ForEachValidator(fn func(v solid.Validator, idx int, total int) bool) + ValidatorForValidatorIndex(index int) (solid.Validator, error) + ForEachSlashingSegment(fn func(idx int, v uint64, total int) bool) SlashingSegmentAt(pos int) uint64 + EpochParticipation(currentEpoch bool) *solid.BitList JustificationBits() cltypes.JustificationBits - EpochParticipationForValidatorIndex(isCurrentEpoch bool, index int) cltypes.ParticipationFlags + PreviousJustifiedCheckpoint() solid.Checkpoint CurrentJustifiedCheckpoint() solid.Checkpoint - ValidatorInactivityScore(index int) (uint64, error) FinalizedCheckpoint() solid.Checkpoint + ValidatorInactivityScore(index int) (uint64, error) CurrentSyncCommittee() *solid.SyncCommittee NextSyncCommittee() *solid.SyncCommittee LatestExecutionPayloadHeader() *cltypes.Eth1Header NextWithdrawalIndex() uint64 + NextWithdrawalValidatorIndex() uint64 + // HistoricalSummary has no accessor yet. + CurrentEpochAttestations() *solid.ListSSZ[*solid.PendingAttestation] CurrentEpochAttestationsLength() int PreviousEpochAttestations() *solid.ListSSZ[*solid.PendingAttestation] PreviousEpochAttestationsLength() int - NextWithdrawalValidatorIndex() uint64 - GetBlockRootAtSlot(slot uint64) (common.Hash, error) - GetDomain(domainType [4]byte, epoch uint64) ([]byte, error) - DebugPrint(prefix string) - BlockRoot() ([32]byte, error) - EncodeSSZ(buf []byte) ([]byte, error) - DecodeSSZ(buf []byte, version int) error - EncodingSizeSSZ() (size int) - Clone() clonable.Clonable - HashSSZ() (out [32]byte, err error) } // TODO figure this out diff --git a/cl/antiquary/antiquary.go b/cl/antiquary/antiquary.go index ebc95201817..e2fd98f9c0c 100644 --- a/cl/antiquary/antiquary.go +++ b/cl/antiquary/antiquary.go @@ -2,8 +2,8 @@ package antiquary import ( "context" - "database/sql" + "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/erigon/cl/clparams" "github.com/ledgerwatch/erigon/cl/persistence" ) @@ -26,17 +26,17 @@ func NewDownloader( } } -func (d *Downloader) DownloadEpoch(tx *sql.Tx, ctx context.Context, epoch uint64) error { +func (d *Downloader) DownloadEpoch(tx kv.RwTx, ctx context.Context, epoch uint64) error { // convert the epoch to a block startBlock := epoch * d.config.SlotsPerEpoch - blocks, err := d.source.GetRange(tx, ctx, startBlock, d.config.SlotsPerEpoch) + blocks, err := d.source.GetRange(ctx, tx, startBlock, d.config.SlotsPerEpoch) if err != nil { return err } // NOTE: the downloader does not perform any real verification on these blocks // validation must be done separately - for _, v := range blocks { - err := d.beacondDB.WriteBlock(tx, ctx, v.Data, true) + for _, v := range blocks.Data { + err := d.beacondDB.WriteBlock(ctx, tx, v, true) if err != nil { return err } diff --git a/cl/beacon/handler/blocks.go b/cl/beacon/handler/blocks.go index 806baf66e00..46d5577ec12 100644 --- a/cl/beacon/handler/blocks.go +++ b/cl/beacon/handler/blocks.go @@ -2,16 +2,16 @@ package handler import ( "context" - "database/sql" "fmt" + "github.com/ledgerwatch/erigon/cl/sentinel/communication/ssz_snappy" "io" "net/http" libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/erigon/cl/clparams" "github.com/ledgerwatch/erigon/cl/cltypes" "github.com/ledgerwatch/erigon/cl/persistence/beacon_indicies" - "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel/communication/ssz_snappy" ) type headerResponse struct { @@ -25,7 +25,7 @@ type getHeadersRequest struct { ParentRoot *libcommon.Hash `json:"root,omitempty"` } -func (a *ApiHandler) rootFromBlockId(ctx context.Context, tx *sql.Tx, blockId *segmentID) (root libcommon.Hash, httpStatusErr int, err error) { +func (a *ApiHandler) rootFromBlockId(ctx context.Context, tx kv.Tx, blockId *segmentID) (root libcommon.Hash, httpStatusErr int, err error) { switch { case blockId.head(): root, _, err = a.forkchoiceStore.GetHead() @@ -37,7 +37,7 @@ func (a *ApiHandler) rootFromBlockId(ctx context.Context, tx *sql.Tx, blockId *s case blockId.justified(): root = a.forkchoiceStore.JustifiedCheckpoint().BlockRoot() case blockId.genesis(): - root, err = beacon_indicies.ReadCanonicalBlockRoot(ctx, tx, 0) + root, err = beacon_indicies.ReadCanonicalBlockRoot(tx, 0) if err != nil { return libcommon.Hash{}, http.StatusInternalServerError, err } @@ -45,7 +45,7 @@ func (a *ApiHandler) rootFromBlockId(ctx context.Context, tx *sql.Tx, blockId *s return libcommon.Hash{}, http.StatusNotFound, fmt.Errorf("genesis block not found") } case blockId.getSlot() != nil: - root, err = beacon_indicies.ReadCanonicalBlockRoot(ctx, tx, *blockId.getSlot()) + root, err = beacon_indicies.ReadCanonicalBlockRoot(tx, *blockId.getSlot()) if err != nil { return libcommon.Hash{}, http.StatusInternalServerError, err } @@ -63,7 +63,7 @@ func (a *ApiHandler) rootFromBlockId(ctx context.Context, tx *sql.Tx, blockId *s func (a *ApiHandler) getBlock(r *http.Request) (data any, finalized *bool, version *clparams.StateVersion, httpStatus int, err error) { var ( - tx *sql.Tx + tx kv.Tx blockId *segmentID root libcommon.Hash blkHeader *cltypes.SignedBeaconBlockHeader @@ -73,7 +73,7 @@ func (a *ApiHandler) getBlock(r *http.Request) (data any, finalized *bool, versi ctx := r.Context() - tx, err = a.indiciesDB.BeginTx(ctx, &sql.TxOptions{ReadOnly: true}) + tx, err = a.indiciesDB.BeginRo(ctx) if err != nil { httpStatus = http.StatusInternalServerError return @@ -119,7 +119,7 @@ func (a *ApiHandler) getBlock(r *http.Request) (data any, finalized *bool, versi func (a *ApiHandler) getBlockAttestations(r *http.Request) (data any, finalized *bool, version *clparams.StateVersion, httpStatus int, err error) { var ( - tx *sql.Tx + tx kv.Tx blockId *segmentID root libcommon.Hash blkHeader *cltypes.SignedBeaconBlockHeader @@ -129,7 +129,7 @@ func (a *ApiHandler) getBlockAttestations(r *http.Request) (data any, finalized ctx := r.Context() - tx, err = a.indiciesDB.BeginTx(ctx, &sql.TxOptions{ReadOnly: true}) + tx, err = a.indiciesDB.BeginRo(ctx) if err != nil { httpStatus = http.StatusInternalServerError return @@ -176,7 +176,7 @@ func (a *ApiHandler) getBlockAttestations(r *http.Request) (data any, finalized func (a *ApiHandler) getBlockRoot(r *http.Request) (data any, finalized *bool, version *clparams.StateVersion, httpStatus int, err error) { var ( - tx *sql.Tx + tx kv.Tx blockId *segmentID root libcommon.Hash blockSlot uint64 @@ -185,7 +185,7 @@ func (a *ApiHandler) getBlockRoot(r *http.Request) (data any, finalized *bool, v ctx := r.Context() - tx, err = a.indiciesDB.BeginTx(ctx, &sql.TxOptions{ReadOnly: true}) + tx, err = a.indiciesDB.BeginRo(ctx) if err != nil { httpStatus = http.StatusInternalServerError return @@ -204,7 +204,7 @@ func (a *ApiHandler) getBlockRoot(r *http.Request) (data any, finalized *bool, v // check if the root exist var blk *cltypes.SignedBeaconBlockHeader - blk, isCanonical, err = beacon_indicies.ReadSignedHeaderByBlockRoot(ctx, a.indiciesDB, root) + blk, isCanonical, err = beacon_indicies.ReadSignedHeaderByBlockRoot(ctx, tx, root) if err != nil { httpStatus = http.StatusInternalServerError return diff --git a/cl/beacon/handler/handler.go b/cl/beacon/handler/handler.go index b0ac6d72c94..7b9ec299270 100644 --- a/cl/beacon/handler/handler.go +++ b/cl/beacon/handler/handler.go @@ -1,11 +1,11 @@ package handler import ( - "database/sql" "net/http" "sync" "github.com/go-chi/chi/v5" + "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/erigon/cl/clparams" "github.com/ledgerwatch/erigon/cl/persistence" "github.com/ledgerwatch/erigon/cl/phase1/forkchoice" @@ -17,14 +17,14 @@ type ApiHandler struct { mux chi.Router blockSource persistence.RawBeaconBlockChain - indiciesDB *sql.DB + indiciesDB kv.RoDB genesisCfg *clparams.GenesisConfig beaconChainCfg *clparams.BeaconChainConfig forkchoiceStore forkchoice.ForkChoiceStorage operationsPool pool.OperationsPool } -func NewApiHandler(genesisConfig *clparams.GenesisConfig, beaconChainConfig *clparams.BeaconChainConfig, source persistence.RawBeaconBlockChain, indiciesDB *sql.DB, forkchoiceStore forkchoice.ForkChoiceStorage, operationsPool pool.OperationsPool) *ApiHandler { +func NewApiHandler(genesisConfig *clparams.GenesisConfig, beaconChainConfig *clparams.BeaconChainConfig, source persistence.RawBeaconBlockChain, indiciesDB kv.RoDB, forkchoiceStore forkchoice.ForkChoiceStorage, operationsPool pool.OperationsPool) *ApiHandler { return &ApiHandler{o: sync.Once{}, genesisCfg: genesisConfig, beaconChainCfg: beaconChainConfig, indiciesDB: indiciesDB, blockSource: source, forkchoiceStore: forkchoiceStore, operationsPool: operationsPool} } diff --git a/cl/beacon/handler/headers.go b/cl/beacon/handler/headers.go index 8c6f5ca32cc..8fe94d8bb11 100644 --- a/cl/beacon/handler/headers.go +++ b/cl/beacon/handler/headers.go @@ -1,7 +1,6 @@ package handler import ( - "database/sql" "encoding/json" "errors" "fmt" @@ -9,6 +8,7 @@ import ( "net/http" libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/erigon/cl/clparams" "github.com/ledgerwatch/erigon/cl/cltypes" "github.com/ledgerwatch/erigon/cl/persistence/beacon_indicies" @@ -30,8 +30,8 @@ func (a *ApiHandler) getHeaders(r *http.Request) (data any, finalized *bool, ver httpStatus = http.StatusBadRequest return } - var tx *sql.Tx - tx, err = a.indiciesDB.BeginTx(ctx, &sql.TxOptions{ReadOnly: true}) + var tx kv.Tx + tx, err = a.indiciesDB.BeginRo(ctx) if err != nil { httpStatus = http.StatusInternalServerError return @@ -54,8 +54,6 @@ func (a *ApiHandler) getHeaders(r *http.Request) (data any, finalized *bool, ver headersList, canonicals, err = beacon_indicies.ReadSignedHeadersBySlot(ctx, tx, *req.Slot) } else if req.ParentRoot != nil { headersList, canonicals, err = beacon_indicies.ReadSignedHeadersByParentRoot(ctx, tx, *req.ParentRoot) - } else { - headersList, canonicals, err = beacon_indicies.ReadSignedHeadersByParentRootAndSlot(ctx, tx, *req.ParentRoot, *req.Slot) } if err != nil { httpStatus = http.StatusInternalServerError @@ -88,7 +86,7 @@ func (a *ApiHandler) getHeaders(r *http.Request) (data any, finalized *bool, ver func (a *ApiHandler) getHeader(r *http.Request) (data any, finalized *bool, version *clparams.StateVersion, httpStatus int, err error) { ctx := r.Context() - tx, err2 := a.indiciesDB.BeginTx(ctx, &sql.TxOptions{ReadOnly: true}) + tx, err2 := a.indiciesDB.BeginRo(ctx) if err2 != nil { httpStatus = http.StatusInternalServerError err = err2 diff --git a/cl/beacon/handler/states.go b/cl/beacon/handler/states.go index 2d45c6a0c2f..c8b201956b4 100644 --- a/cl/beacon/handler/states.go +++ b/cl/beacon/handler/states.go @@ -2,18 +2,18 @@ package handler import ( "context" - "database/sql" "fmt" "net/http" libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/erigon/cl/clparams" "github.com/ledgerwatch/erigon/cl/cltypes" "github.com/ledgerwatch/erigon/cl/persistence/beacon_indicies" "github.com/ledgerwatch/erigon/cl/utils" ) -func (a *ApiHandler) rootFromStateId(ctx context.Context, tx *sql.Tx, stateId *segmentID) (root libcommon.Hash, httpStatusErr int, err error) { +func (a *ApiHandler) rootFromStateId(ctx context.Context, tx kv.Tx, stateId *segmentID) (root libcommon.Hash, httpStatusErr int, err error) { var blockRoot libcommon.Hash switch { case stateId.head(): @@ -26,7 +26,7 @@ func (a *ApiHandler) rootFromStateId(ctx context.Context, tx *sql.Tx, stateId *s case stateId.justified(): blockRoot = a.forkchoiceStore.JustifiedCheckpoint().BlockRoot() case stateId.genesis(): - blockRoot, err = beacon_indicies.ReadCanonicalBlockRoot(ctx, tx, 0) + blockRoot, err = beacon_indicies.ReadCanonicalBlockRoot(tx, 0) if err != nil { return libcommon.Hash{}, http.StatusInternalServerError, err } @@ -34,7 +34,7 @@ func (a *ApiHandler) rootFromStateId(ctx context.Context, tx *sql.Tx, stateId *s return libcommon.Hash{}, http.StatusNotFound, fmt.Errorf("genesis block not found") } case stateId.getSlot() != nil: - blockRoot, err = beacon_indicies.ReadCanonicalBlockRoot(ctx, tx, *stateId.getSlot()) + blockRoot, err = beacon_indicies.ReadCanonicalBlockRoot(tx, *stateId.getSlot()) if err != nil { return libcommon.Hash{}, http.StatusInternalServerError, err } @@ -70,7 +70,7 @@ func previousVersion(v clparams.StateVersion) clparams.StateVersion { func (a *ApiHandler) getStateFork(r *http.Request) (data any, finalized *bool, version *clparams.StateVersion, httpStatus int, err error) { var ( - tx *sql.Tx + tx kv.Tx blockId *segmentID root libcommon.Hash blkHeader *cltypes.SignedBeaconBlockHeader @@ -78,7 +78,7 @@ func (a *ApiHandler) getStateFork(r *http.Request) (data any, finalized *bool, v ctx := r.Context() - tx, err = a.indiciesDB.BeginTx(ctx, &sql.TxOptions{ReadOnly: true}) + tx, err = a.indiciesDB.BeginRo(ctx) if err != nil { httpStatus = http.StatusInternalServerError return @@ -123,7 +123,7 @@ func (a *ApiHandler) getStateFork(r *http.Request) (data any, finalized *bool, v func (a *ApiHandler) getStateRoot(r *http.Request) (data any, finalized *bool, version *clparams.StateVersion, httpStatus int, err error) { var ( - tx *sql.Tx + tx kv.Tx blockId *segmentID root libcommon.Hash blkHeader *cltypes.SignedBeaconBlockHeader @@ -132,7 +132,7 @@ func (a *ApiHandler) getStateRoot(r *http.Request) (data any, finalized *bool, v ctx := r.Context() - tx, err = a.indiciesDB.BeginTx(ctx, &sql.TxOptions{ReadOnly: true}) + tx, err = a.indiciesDB.BeginRo(ctx) if err != nil { httpStatus = http.StatusInternalServerError return diff --git a/cl/beacon/middleware.go b/cl/beacon/middleware.go index be2a1bcafd7..b9f66a4ab33 100644 --- a/cl/beacon/middleware.go +++ b/cl/beacon/middleware.go @@ -1,7 +1,6 @@ package beacon import ( - "fmt" "net/http" ) @@ -9,7 +8,6 @@ func newBeaconMiddleware(next http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { contentType := r.Header.Get("Content-Type") if contentType != "application/json" && contentType != "" { - fmt.Println(contentType) http.Error(w, "Content-Type header must be application/json", http.StatusUnsupportedMediaType) return } diff --git a/cl/clparams/config.go b/cl/clparams/config.go index 56c347d6ce9..93ea330f81f 100644 --- a/cl/clparams/config.go +++ b/cl/clparams/config.go @@ -21,12 +21,12 @@ import ( "os" "time" + "github.com/ledgerwatch/erigon-lib/chain/networkname" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/types/ssz" "gopkg.in/yaml.v2" "github.com/ledgerwatch/erigon/cl/utils" - "github.com/ledgerwatch/erigon/params/networkname" ) type NetworkType int diff --git a/cl/cltypes/beacon_block.go b/cl/cltypes/beacon_block.go index cf871d72d01..8125342241c 100644 --- a/cl/cltypes/beacon_block.go +++ b/cl/cltypes/beacon_block.go @@ -72,12 +72,31 @@ func NewSignedBeaconBlock(beaconCfg *clparams.BeaconChainConfig) *SignedBeaconBl return &SignedBeaconBlock{Block: NewBeaconBlock(beaconCfg)} } +func (s *SignedBeaconBlock) SignedBeaconBlockHeader() *SignedBeaconBlockHeader { + bodyRoot, err := s.Block.Body.HashSSZ() + if err != nil { + panic(err) + } + return &SignedBeaconBlockHeader{ + Signature: s.Signature, + Header: &BeaconBlockHeader{ + Slot: s.Block.Slot, + ProposerIndex: s.Block.ProposerIndex, + ParentRoot: s.Block.ParentRoot, + Root: s.Block.StateRoot, + BodyRoot: bodyRoot, + }, + } +} + func NewBeaconBlock(beaconCfg *clparams.BeaconChainConfig) *BeaconBlock { return &BeaconBlock{Body: NewBeaconBody(beaconCfg)} } func NewBeaconBody(beaconCfg *clparams.BeaconChainConfig) *BeaconBody { - return &BeaconBody{beaconCfg: beaconCfg} + return &BeaconBody{ + beaconCfg: beaconCfg, + } } // Version returns beacon block version. @@ -155,6 +174,8 @@ func (b *BeaconBody) DecodeSSZ(buf []byte, version int) error { return fmt.Errorf("[BeaconBody] err: %s", ssz.ErrLowBufferSize) } + b.ExecutionPayload = NewEth1Block(b.Version, b.beaconCfg) + err := ssz2.UnmarshalSSZ(buf, version, b.getSchema(false)...) return err } diff --git a/cl/cltypes/bls_to_execution_test.go b/cl/cltypes/bls_to_execution_test.go index c5065e85e8f..2aca0a33956 100644 --- a/cl/cltypes/bls_to_execution_test.go +++ b/cl/cltypes/bls_to_execution_test.go @@ -1,11 +1,11 @@ package cltypes_test import ( + "github.com/ledgerwatch/erigon-lib/common" "testing" "github.com/ledgerwatch/erigon/cl/cltypes" "github.com/ledgerwatch/erigon/cl/utils" - "github.com/ledgerwatch/erigon/common" "github.com/stretchr/testify/require" ) diff --git a/cl/cltypes/eth1_data.go b/cl/cltypes/eth1_data.go index 92b45be76cb..716105dee89 100644 --- a/cl/cltypes/eth1_data.go +++ b/cl/cltypes/eth1_data.go @@ -6,7 +6,6 @@ import ( "github.com/ledgerwatch/erigon/cl/merkle_tree" ssz2 "github.com/ledgerwatch/erigon/cl/ssz" - "github.com/ledgerwatch/erigon/common" ) type Eth1Data struct { @@ -36,7 +35,7 @@ func (e *Eth1Data) DecodeSSZ(buf []byte, _ int) error { // EncodingSizeSSZ returns the ssz encoded size in bytes for the Eth1Data object func (e *Eth1Data) EncodingSizeSSZ() int { - return common.BlockNumberLength + length.Hash*2 + return 8 + length.Hash*2 } // HashSSZ ssz hashes the Eth1Data object diff --git a/cl/cltypes/eth1_data_test.go b/cl/cltypes/eth1_data_test.go index 9d363e9fb0e..9a15b92f3e6 100644 --- a/cl/cltypes/eth1_data_test.go +++ b/cl/cltypes/eth1_data_test.go @@ -8,7 +8,6 @@ import ( "github.com/stretchr/testify/require" "github.com/ledgerwatch/erigon/cl/cltypes" - "github.com/ledgerwatch/erigon/common" ) var testEth1Data = &cltypes.Eth1Data{ @@ -17,8 +16,8 @@ var testEth1Data = &cltypes.Eth1Data{ DepositCount: 69, } -var expectedTestEth1DataMarshalled = common.Hex2Bytes("000000000000000000000000000000000000000000000000000000000000000245000000000000000000000000000000000000000000000000000000000000000000000000000003") -var expectedTestEth1DataRoot = common.Hex2Bytes("adbafa10f1d6046b59cb720371c5e70ce2c6c3067b0e87985f5cd0899a515886") +var expectedTestEth1DataMarshalled = libcommon.Hex2Bytes("000000000000000000000000000000000000000000000000000000000000000245000000000000000000000000000000000000000000000000000000000000000000000000000003") +var expectedTestEth1DataRoot = libcommon.Hex2Bytes("adbafa10f1d6046b59cb720371c5e70ce2c6c3067b0e87985f5cd0899a515886") func TestEth1DataMarshalUnmarmashal(t *testing.T) { marshalled, _ := testEth1Data.EncodeSSZ(nil) diff --git a/cl/cltypes/historical_summary_test.go b/cl/cltypes/historical_summary_test.go index f99b5bd9132..89a716c11a2 100644 --- a/cl/cltypes/historical_summary_test.go +++ b/cl/cltypes/historical_summary_test.go @@ -1,11 +1,11 @@ package cltypes_test import ( + "github.com/ledgerwatch/erigon-lib/common" "testing" "github.com/ledgerwatch/erigon/cl/cltypes" "github.com/ledgerwatch/erigon/cl/utils" - "github.com/ledgerwatch/erigon/common" "github.com/stretchr/testify/require" ) diff --git a/cl/cltypes/network.go b/cl/cltypes/network.go index 45f51acfaee..af8d1a3ee26 100644 --- a/cl/cltypes/network.go +++ b/cl/cltypes/network.go @@ -5,7 +5,6 @@ import ( "github.com/ledgerwatch/erigon-lib/types/ssz" ssz2 "github.com/ledgerwatch/erigon/cl/ssz" - "github.com/ledgerwatch/erigon/common" ) type Metadata struct { @@ -22,7 +21,7 @@ func (m *Metadata) EncodeSSZ(buf []byte) ([]byte, error) { } func (m *Metadata) EncodingSizeSSZ() (ret int) { - ret = common.BlockNumberLength * 2 + ret = 8 * 2 if m.Syncnets != nil { ret += 8 } @@ -50,7 +49,7 @@ func (p *Ping) EncodeSSZ(buf []byte) ([]byte, error) { } func (p *Ping) EncodingSizeSSZ() int { - return common.BlockNumberLength + return 8 } func (p *Ping) DecodeSSZ(buf []byte, _ int) error { @@ -76,7 +75,7 @@ func (b *BeaconBlocksByRangeRequest) DecodeSSZ(buf []byte, v int) error { } func (b *BeaconBlocksByRangeRequest) EncodingSizeSSZ() int { - return 3 * common.BlockNumberLength + return 3 * 8 } func (*BeaconBlocksByRangeRequest) Clone() clonable.Clonable { diff --git a/cl/cltypes/solid/attestation.go b/cl/cltypes/solid/attestation.go index 64e99a8632b..68e9e131e39 100644 --- a/cl/cltypes/solid/attestation.go +++ b/cl/cltypes/solid/attestation.go @@ -9,7 +9,6 @@ import ( "github.com/ledgerwatch/erigon-lib/types/clonable" "github.com/ledgerwatch/erigon-lib/types/ssz" "github.com/ledgerwatch/erigon/cl/merkle_tree" - "github.com/ledgerwatch/erigon/common" ) const ( @@ -121,7 +120,7 @@ func (a *Attestation) DecodeSSZ(buf []byte, _ int) error { return ssz.ErrLowBufferSize } copy(a.staticBuffer[:], buf) - a.aggregationBitsBuffer = common.CopyBytes(buf[aggregationBitsOffset:]) + a.aggregationBitsBuffer = libcommon.CopyBytes(buf[aggregationBitsOffset:]) return nil } diff --git a/cl/cltypes/solid/bitlist.go b/cl/cltypes/solid/bitlist.go index f93a47ef786..41eb9b1b3a4 100644 --- a/cl/cltypes/solid/bitlist.go +++ b/cl/cltypes/solid/bitlist.go @@ -1,12 +1,12 @@ package solid import ( + "github.com/ledgerwatch/erigon-lib/common" "math/bits" "github.com/ledgerwatch/erigon-lib/types/clonable" "github.com/ledgerwatch/erigon/cl/merkle_tree" "github.com/ledgerwatch/erigon/cl/utils" - "github.com/ledgerwatch/erigon/common" ) // BitList is like a dynamic binary string. It's like a flipbook of 1s and 0s! diff --git a/cl/cltypes/solid/checkpoint_test.go b/cl/cltypes/solid/checkpoint_test.go index de41bd3e9f9..e6598028e4a 100644 --- a/cl/cltypes/solid/checkpoint_test.go +++ b/cl/cltypes/solid/checkpoint_test.go @@ -8,13 +8,12 @@ import ( "github.com/stretchr/testify/require" "github.com/ledgerwatch/erigon/cl/cltypes/solid" - "github.com/ledgerwatch/erigon/common" ) var testCheckpoint = solid.NewCheckpointFromParameters(libcommon.HexToHash("0x3"), 69) -var expectedTestCheckpointMarshalled = common.Hex2Bytes("45000000000000000000000000000000000000000000000000000000000000000000000000000003") -var expectedTestCheckpointRoot = common.Hex2Bytes("be8567f9fdae831b10720823dbcf0e3680e61d6a2a27d85ca00f6c15a7bbb1ea") +var expectedTestCheckpointMarshalled = libcommon.Hex2Bytes("45000000000000000000000000000000000000000000000000000000000000000000000000000003") +var expectedTestCheckpointRoot = libcommon.Hex2Bytes("be8567f9fdae831b10720823dbcf0e3680e61d6a2a27d85ca00f6c15a7bbb1ea") func TestCheckpointMarshalUnmarmashal(t *testing.T) { marshalled, err := testCheckpoint.EncodeSSZ(nil) diff --git a/cl/cltypes/solid/pending_attestation.go b/cl/cltypes/solid/pending_attestation.go index 214aa6e3781..4363babf727 100644 --- a/cl/cltypes/solid/pending_attestation.go +++ b/cl/cltypes/solid/pending_attestation.go @@ -2,11 +2,11 @@ package solid import ( "encoding/binary" + "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/types/clonable" "github.com/ledgerwatch/erigon-lib/types/ssz" "github.com/ledgerwatch/erigon/cl/merkle_tree" - "github.com/ledgerwatch/erigon/common" ) const ( diff --git a/cl/fork/fork.go b/cl/fork/fork.go index bd262032276..676122a4372 100644 --- a/cl/fork/fork.go +++ b/cl/fork/fork.go @@ -130,7 +130,6 @@ func ComputeNextForkDigest( // Retrieve next fork version. nextForkIndex := 0 forkList := forkList(beaconConfig.ForkVersionSchedule) - fmt.Println(forkList, beaconConfig.ForkVersionSchedule) for _, fork := range forkList { if currentEpoch >= fork.epoch { nextForkIndex++ @@ -143,7 +142,6 @@ func ComputeNextForkDigest( return [4]byte{}, nil } nextForkIndex++ - fmt.Println(forkList[nextForkIndex].version) return ComputeForkDigestForVersion(forkList[nextForkIndex].version, genesisConfig.GenesisValidatorRoot) } diff --git a/cl/freezer/utils.go b/cl/freezer/utils.go index 4d2cb25ca8b..d7b2052186e 100644 --- a/cl/freezer/utils.go +++ b/cl/freezer/utils.go @@ -3,9 +3,9 @@ package freezer import ( "bytes" "fmt" + "github.com/ledgerwatch/erigon/cl/sentinel/communication/ssz_snappy" "github.com/ledgerwatch/erigon-lib/types/ssz" - "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel/communication/ssz_snappy" ) type marshalerHashable interface { diff --git a/cl/persistence/base_encoding/primitives.go b/cl/persistence/base_encoding/primitives.go new file mode 100644 index 00000000000..3e266e8beb3 --- /dev/null +++ b/cl/persistence/base_encoding/primitives.go @@ -0,0 +1,37 @@ +package base_encoding + +import ( + "math/bits" + + libcommon "github.com/ledgerwatch/erigon-lib/common" +) + +// Encode64 takes x, the uint to encode, and buf, the buffer to write to. +func Encode64(x uint64) (out []byte) { + l := libcommon.BitLenToByteLen(bits.Len64(x)) + out = make([]byte, l) + return Encode64InPlace(x, out) +} + +// Encode64 takes x, the uint to encode, and buf, the buffer to write to. +func Encode64InPlace(x uint64, buf []byte) (out []byte) { + l := libcommon.BitLenToByteLen(bits.Len64(x)) + out = buf[:l] + + for i := l; i > 0; i-- { + out[i-1] = byte(x) + x >>= 8 + } + return out +} + +// Encode64 takes x, the uint to encode, and buf, the buffer to write to. +func Decode64(buf []byte) (x uint64) { + for i, b := range buf { + x = x<<8 + uint64(b) + if i == 7 { + return + } + } + return +} diff --git a/cl/persistence/base_encoding/primitives_test.go b/cl/persistence/base_encoding/primitives_test.go new file mode 100644 index 00000000000..26d7883d5cc --- /dev/null +++ b/cl/persistence/base_encoding/primitives_test.go @@ -0,0 +1,15 @@ +package base_encoding + +import ( + "testing" + + "github.com/stretchr/testify/require" +) + +func Test64(t *testing.T) { + number := uint64(0x1234567890abcd) + + out := Encode64(number) + require.Equal(t, len(out), 7) + require.Equal(t, Decode64(out), number) +} diff --git a/cl/persistence/beacon_indicies/indicies.go b/cl/persistence/beacon_indicies/indicies.go new file mode 100644 index 00000000000..da08b445b8f --- /dev/null +++ b/cl/persistence/beacon_indicies/indicies.go @@ -0,0 +1,252 @@ +package beacon_indicies + +import ( + "context" + "fmt" + + libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon/cl/cltypes" + "github.com/ledgerwatch/erigon/cl/persistence/base_encoding" + _ "modernc.org/sqlite" +) + +func WriteHighestFinalized(tx kv.RwTx, slot uint64) error { + return tx.Put(kv.HighestFinalized, kv.HighestFinalizedKey, base_encoding.Encode64(slot)) +} + +func ReadHighestFinalized(tx kv.Tx) (uint64, error) { + val, err := tx.GetOne(kv.HighestFinalized, kv.HighestFinalizedKey) + if err != nil { + return 0, err + } + if len(val) == 0 { + return 0, nil + } + return base_encoding.Decode64(val), nil +} + +// WriteBlockRootSlot writes the slot associated with a block root. +func WriteHeaderSlot(tx kv.RwTx, blockRoot libcommon.Hash, slot uint64) error { + return tx.Put(kv.BlockRootToSlot, blockRoot[:], base_encoding.Encode64(slot)) +} + +func ReadBlockSlotByBlockRoot(tx kv.Tx, blockRoot libcommon.Hash) (*uint64, error) { + slotBytes, err := tx.GetOne(kv.BlockRootToSlot, blockRoot[:]) + if err != nil { + return nil, err + } + if len(slotBytes) == 0 { + return nil, nil + } + slot := new(uint64) + *slot = base_encoding.Decode64(slotBytes) + return slot, nil +} + +// WriteBlockRootSlot writes the slot associated with a block root. +func WriteStateRoot(tx kv.RwTx, blockRoot libcommon.Hash, stateRoot libcommon.Hash) error { + if err := tx.Put(kv.BlockRootToStateRoot, blockRoot[:], stateRoot[:]); err != nil { + return err + } + return tx.Put(kv.StateRootToBlockRoot, stateRoot[:], blockRoot[:]) +} + +func ReadStateRootByBlockRoot(ctx context.Context, tx kv.Tx, blockRoot libcommon.Hash) (libcommon.Hash, error) { + var stateRoot libcommon.Hash + + sRoot, err := tx.GetOne(kv.BlockRootToStateRoot, blockRoot[:]) + if err != nil { + return libcommon.Hash{}, err + } + + copy(stateRoot[:], sRoot) + + return stateRoot, nil +} + +func ReadBlockRootByStateRoot(tx kv.Tx, stateRoot libcommon.Hash) (libcommon.Hash, error) { + var blockRoot libcommon.Hash + + bRoot, err := tx.GetOne(kv.StateRootToBlockRoot, stateRoot[:]) + if err != nil { + return libcommon.Hash{}, err + } + + copy(blockRoot[:], bRoot) + + return stateRoot, nil +} + +func ReadCanonicalBlockRoot(tx kv.Tx, slot uint64) (libcommon.Hash, error) { + var blockRoot libcommon.Hash + + bRoot, err := tx.GetOne(kv.CanonicalBlockRoots, base_encoding.Encode64(slot)) + if err != nil { + return libcommon.Hash{}, err + } + + copy(blockRoot[:], bRoot) + return blockRoot, nil +} + +func MarkRootCanonical(ctx context.Context, tx kv.RwTx, slot uint64, blockRoot libcommon.Hash) error { + return tx.Put(kv.CanonicalBlockRoots, base_encoding.Encode64(slot), blockRoot[:]) +} + +func WriteBeaconBlockHeader(ctx context.Context, tx kv.RwTx, signedHeader *cltypes.SignedBeaconBlockHeader) error { + headersBytes, err := signedHeader.EncodeSSZ(nil) + if err != nil { + return err + } + blockRoot, err := signedHeader.Header.HashSSZ() + if err != nil { + return err + } + return tx.Put(kv.BeaconBlockHeaders, blockRoot[:], headersBytes) +} + +func WriteBeaconBlockHeaderAndIndicies(ctx context.Context, tx kv.RwTx, signedHeader *cltypes.SignedBeaconBlockHeader, forceCanonical bool) error { + blockRoot, err := signedHeader.Header.HashSSZ() + if err != nil { + return err + } + if err := WriteBeaconBlockHeader(ctx, tx, signedHeader); err != nil { + return err + } + if err := WriteHeaderSlot(tx, blockRoot, signedHeader.Header.Slot); err != nil { + return err + } + if err := WriteStateRoot(tx, blockRoot, signedHeader.Header.Root); err != nil { + return err + } + if err := WriteParentBlockRoot(ctx, tx, blockRoot, signedHeader.Header.ParentRoot); err != nil { + return err + } + if forceCanonical { + if err := MarkRootCanonical(ctx, tx, signedHeader.Header.Slot, blockRoot); err != nil { + return err + } + } + + return nil +} + +func ReadParentBlockRoot(ctx context.Context, tx kv.Tx, blockRoot libcommon.Hash) (libcommon.Hash, error) { + var parentRoot libcommon.Hash + + pRoot, err := tx.GetOne(kv.BlockRootToParentRoot, blockRoot[:]) + if err != nil { + return libcommon.Hash{}, err + } + + copy(parentRoot[:], pRoot) + + return parentRoot, nil +} + +func WriteParentBlockRoot(ctx context.Context, tx kv.RwTx, blockRoot, parentRoot libcommon.Hash) error { + return tx.Put(kv.BlockRootToParentRoot, blockRoot[:], parentRoot[:]) +} + +func TruncateCanonicalChain(ctx context.Context, tx kv.RwTx, slot uint64) error { + return tx.ForEach(kv.CanonicalBlockRoots, base_encoding.Encode64(slot), func(k, _ []byte) error { + return tx.Delete(kv.CanonicalBlockRoots, k) + }) +} + +func RangeBlockRoots(ctx context.Context, tx kv.Tx, fromSlot, toSlot uint64, fn func(slot uint64, beaconBlockRoot libcommon.Hash) bool) error { + cursor, err := tx.Cursor(kv.CanonicalBlockRoots) + if err != nil { + return err + } + for k, v, err := cursor.Seek(base_encoding.Encode64(fromSlot)); err == nil && k != nil && base_encoding.Decode64(k) <= toSlot; k, v, err = cursor.Next() { + if !fn(base_encoding.Decode64(k), libcommon.BytesToHash(v)) { + break + } + } + return err +} + +func PruneBlockRoots(ctx context.Context, tx kv.RwTx, fromSlot, toSlot uint64) error { + cursor, err := tx.RwCursor(kv.CanonicalBlockRoots) + if err != nil { + return err + } + for k, _, err := cursor.Seek(base_encoding.Encode64(fromSlot)); err == nil && k != nil && base_encoding.Decode64(k) <= toSlot; k, _, err = cursor.Next() { + if err := cursor.DeleteCurrent(); err != nil { + return err + } + } + return err +} + +func ReadBeaconBlockRootsInSlotRange(ctx context.Context, tx kv.Tx, fromSlot, count uint64) ([]libcommon.Hash, []uint64, error) { + blockRoots := make([]libcommon.Hash, 0, count) + slots := make([]uint64, 0, count) + err := RangeBlockRoots(ctx, tx, fromSlot, fromSlot+count, func(slot uint64, beaconBlockRoot libcommon.Hash) bool { + blockRoots = append(blockRoots, beaconBlockRoot) + slots = append(slots, slot) + return true + }) + return blockRoots, slots, err +} + +func ReadSignedHeaderByBlockRoot(ctx context.Context, tx kv.Tx, blockRoot libcommon.Hash) (*cltypes.SignedBeaconBlockHeader, bool, error) { + h := &cltypes.SignedBeaconBlockHeader{Header: &cltypes.BeaconBlockHeader{}} + headerBytes, err := tx.GetOne(kv.BeaconBlockHeaders, blockRoot[:]) + if err != nil { + return nil, false, err + } + if len(headerBytes) == 0 { + return nil, false, nil + } + if err := h.DecodeSSZ(headerBytes, 0); err != nil { + return nil, false, fmt.Errorf("failed to decode BeaconHeader: %v", err) + } + canonical, err := ReadCanonicalBlockRoot(tx, h.Header.Slot) + if err != nil { + return nil, false, err + } + return h, canonical == blockRoot, nil +} + +func ReadSignedHeaderByStateRoot(ctx context.Context, tx kv.Tx, stateRoot libcommon.Hash) (*cltypes.SignedBeaconBlockHeader, bool, error) { + blockRoot, err := ReadBlockRootByStateRoot(tx, stateRoot) + if err != nil { + return nil, false, err + } + return ReadSignedHeaderByBlockRoot(ctx, tx, blockRoot) +} + +// We dont support non-canonicals for the below methods + +func ReadSignedHeadersBySlot(ctx context.Context, tx kv.Tx, slot uint64) ([]*cltypes.SignedBeaconBlockHeader, []bool, error) { + root, err := ReadCanonicalBlockRoot(tx, slot) + if err != nil { + return nil, nil, err + } + if root == (libcommon.Hash{}) { + return nil, nil, nil + } + h, _, err := ReadSignedHeaderByBlockRoot(ctx, tx, root) + if err != nil { + return nil, nil, err + } + if h == nil { + return nil, nil, nil + } + return []*cltypes.SignedBeaconBlockHeader{h}, []bool{true}, nil +} + +func ReadSignedHeadersByParentRoot(ctx context.Context, tx kv.Tx, parentRoot libcommon.Hash) ([]*cltypes.SignedBeaconBlockHeader, []bool, error) { + // Execute the query. + slot, err := ReadBlockSlotByBlockRoot(tx, parentRoot) + if err != nil { + return nil, nil, err + } + if slot == nil { + return nil, nil, nil + } + return ReadSignedHeadersBySlot(ctx, tx, *slot) +} diff --git a/cl/persistence/beacon_indicies/sql_indexer_test.go b/cl/persistence/beacon_indicies/indicies_test.go similarity index 71% rename from cl/persistence/beacon_indicies/sql_indexer_test.go rename to cl/persistence/beacon_indicies/indicies_test.go index db77f24d353..7451327b89b 100644 --- a/cl/persistence/beacon_indicies/sql_indexer_test.go +++ b/cl/persistence/beacon_indicies/indicies_test.go @@ -2,54 +2,51 @@ package beacon_indicies import ( "context" - "database/sql" "testing" libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon-lib/kv/memdb" "github.com/ledgerwatch/erigon/cl/clparams" "github.com/ledgerwatch/erigon/cl/cltypes" - "github.com/ledgerwatch/erigon/cl/persistence/sql_migrations" "github.com/stretchr/testify/require" ) -func setupTestDB(t *testing.T) *sql.DB { +func setupTestDB(t *testing.T) kv.RwDB { // Create an in-memory SQLite DB for testing purposes - db, err := sql.Open("sqlite", "file::memory:?cache=shared") - require.NoError(t, err) + db := memdb.NewTestDB(t) return db } func TestWriteBlockRoot(t *testing.T) { db := setupTestDB(t) defer db.Close() - tx, _ := db.Begin() + tx, _ := db.BeginRw(context.Background()) defer tx.Rollback() - sql_migrations.ApplyMigrations(context.Background(), tx) - // Mock a block block := cltypes.NewSignedBeaconBlock(&clparams.MainnetBeaconConfig) block.Block.Slot = 56 block.EncodingSizeSSZ() - require.NoError(t, GenerateBlockIndicies(context.Background(), tx, block, false)) + require.NoError(t, WriteBeaconBlockHeaderAndIndicies(context.Background(), tx, block.SignedBeaconBlockHeader(), false)) // Try to retrieve the block's slot by its blockRoot and verify blockRoot, err := block.Block.HashSSZ() require.NoError(t, err) - retrievedSlot, err := ReadBlockSlotByBlockRoot(context.Background(), tx, blockRoot) + retrievedSlot, err := ReadBlockSlotByBlockRoot(tx, blockRoot) require.NoError(t, err) require.Equal(t, block.Block.Slot, *retrievedSlot) - canonicalRoot, err := ReadCanonicalBlockRoot(context.Background(), tx, *retrievedSlot) + canonicalRoot, err := ReadCanonicalBlockRoot(tx, *retrievedSlot) require.NoError(t, err) require.Equal(t, libcommon.Hash{}, canonicalRoot) err = MarkRootCanonical(context.Background(), tx, *retrievedSlot, blockRoot) require.NoError(t, err) - canonicalRoot, err = ReadCanonicalBlockRoot(context.Background(), tx, *retrievedSlot) + canonicalRoot, err = ReadCanonicalBlockRoot(tx, *retrievedSlot) require.NoError(t, err) require.Equal(t, libcommon.Hash(blockRoot), canonicalRoot) } @@ -57,11 +54,9 @@ func TestWriteBlockRoot(t *testing.T) { func TestReadParentBlockRoot(t *testing.T) { db := setupTestDB(t) defer db.Close() - tx, _ := db.Begin() + tx, _ := db.BeginRw(context.Background()) defer tx.Rollback() - sql_migrations.ApplyMigrations(context.Background(), tx) - mockParentRoot := libcommon.Hash{1} // Mock a block block := cltypes.NewSignedBeaconBlock(&clparams.MainnetBeaconConfig) @@ -69,7 +64,7 @@ func TestReadParentBlockRoot(t *testing.T) { block.Block.ParentRoot = mockParentRoot block.EncodingSizeSSZ() - require.NoError(t, GenerateBlockIndicies(context.Background(), tx, block, false)) + require.NoError(t, WriteBeaconBlockHeaderAndIndicies(context.Background(), tx, block.SignedBeaconBlockHeader(), false)) // Try to retrieve the block's slot by its blockRoot and verify blockRoot, err := block.Block.HashSSZ() @@ -83,11 +78,9 @@ func TestReadParentBlockRoot(t *testing.T) { func TestTruncateCanonicalChain(t *testing.T) { db := setupTestDB(t) defer db.Close() - tx, _ := db.Begin() + tx, _ := db.BeginRw(context.Background()) defer tx.Rollback() - sql_migrations.ApplyMigrations(context.Background(), tx) - mockParentRoot := libcommon.Hash{1} // Mock a block block := cltypes.NewSignedBeaconBlock(&clparams.MainnetBeaconConfig) @@ -95,19 +88,19 @@ func TestTruncateCanonicalChain(t *testing.T) { block.Block.ParentRoot = mockParentRoot block.EncodingSizeSSZ() - require.NoError(t, GenerateBlockIndicies(context.Background(), tx, block, true)) + require.NoError(t, WriteBeaconBlockHeaderAndIndicies(context.Background(), tx, block.SignedBeaconBlockHeader(), true)) // Try to retrieve the block's slot by its blockRoot and verify blockRoot, err := block.Block.HashSSZ() require.NoError(t, err) - canonicalRoot, err := ReadCanonicalBlockRoot(context.Background(), tx, block.Block.Slot) + canonicalRoot, err := ReadCanonicalBlockRoot(tx, block.Block.Slot) require.NoError(t, err) require.Equal(t, libcommon.Hash(blockRoot), canonicalRoot) require.NoError(t, TruncateCanonicalChain(context.Background(), tx, 0)) - canonicalRoot, err = ReadCanonicalBlockRoot(context.Background(), tx, block.Block.Slot) + canonicalRoot, err = ReadCanonicalBlockRoot(tx, block.Block.Slot) require.NoError(t, err) require.Equal(t, canonicalRoot, libcommon.Hash{}) } @@ -115,11 +108,9 @@ func TestTruncateCanonicalChain(t *testing.T) { func TestReadBeaconBlockHeader(t *testing.T) { db := setupTestDB(t) defer db.Close() - tx, _ := db.Begin() + tx, _ := db.BeginRw(context.Background()) defer tx.Rollback() - sql_migrations.ApplyMigrations(context.Background(), tx) - mockParentRoot := libcommon.Hash{1} mockSignature := [96]byte{23} @@ -132,7 +123,7 @@ func TestReadBeaconBlockHeader(t *testing.T) { canonical := true block.EncodingSizeSSZ() - require.NoError(t, GenerateBlockIndicies(context.Background(), tx, block, canonical)) + require.NoError(t, WriteBeaconBlockHeaderAndIndicies(context.Background(), tx, block.SignedBeaconBlockHeader(), canonical)) // Try to retrieve the block's slot by its blockRoot and verify blockRoot, err := block.Block.HashSSZ() diff --git a/cl/persistence/beacon_indicies/sql_indexer.go b/cl/persistence/beacon_indicies/sql_indexer.go deleted file mode 100644 index 93d0776b549..00000000000 --- a/cl/persistence/beacon_indicies/sql_indexer.go +++ /dev/null @@ -1,328 +0,0 @@ -package beacon_indicies - -import ( - "context" - "database/sql" - "errors" - "fmt" - - libcommon "github.com/ledgerwatch/erigon-lib/common" - "github.com/ledgerwatch/erigon/cl/cltypes" - _ "modernc.org/sqlite" -) - -type SQLObject interface { - QueryRowContext(ctx context.Context, query string, args ...any) *sql.Row - ExecContext(ctx context.Context, query string, args ...any) (sql.Result, error) - QueryContext(ctx context.Context, query string, args ...any) (*sql.Rows, error) -} - -func ReadBlockSlotByBlockRoot(ctx context.Context, tx SQLObject, blockRoot libcommon.Hash) (*uint64, error) { - var slot uint64 - - // Execute the query. - err := tx.QueryRowContext(ctx, "SELECT slot FROM beacon_indicies WHERE beacon_block_root = ?", blockRoot[:]).Scan(&slot) // Note: blockRoot[:] converts [32]byte to []byte - if err != nil { - if errors.Is(err, sql.ErrNoRows) { - return nil, nil - } - return nil, fmt.Errorf("failed to retrieve slot for BeaconBlockRoot: %v", err) - } - - return &slot, nil -} - -func ReadCanonicalBlockRoot(ctx context.Context, db SQLObject, slot uint64) (libcommon.Hash, error) { - var blockRoot libcommon.Hash - - // Execute the query. - err := db.QueryRowContext(ctx, "SELECT beacon_block_root FROM beacon_indicies WHERE slot = ? AND canonical = 1", slot).Scan(&blockRoot) - if err != nil { - if errors.Is(err, sql.ErrNoRows) { - return libcommon.Hash{}, nil - } - return libcommon.Hash{}, fmt.Errorf("failed to retrieve BeaconBlockRoot for slot: %v", err) - } - - return blockRoot, nil -} - -func ReadStateRootByBlockRoot(ctx context.Context, db SQLObject, blockRoot libcommon.Hash) (libcommon.Hash, error) { - var stateRoot libcommon.Hash - - // Execute the query. - err := db.QueryRowContext(ctx, "SELECT state_root FROM beacon_indicies WHERE beacon_block_root = ?", blockRoot).Scan(&stateRoot) - if err != nil { - if errors.Is(err, sql.ErrNoRows) { - return libcommon.Hash{}, nil - } - return libcommon.Hash{}, fmt.Errorf("failed to retrieve BeaconBlockRoot for slot: %v", err) - } - - return stateRoot, nil -} - -func MarkRootCanonical(ctx context.Context, db SQLObject, slot uint64, blockRoot libcommon.Hash) error { - // First, reset the Canonical status for all other block roots with the same slot - if _, err := db.ExecContext(ctx, "UPDATE beacon_indicies SET canonical = 0 WHERE slot = ?", slot); err != nil { - return fmt.Errorf("failed to reset canonical status for other block roots: %v", err) - } - - // Next, mark the given blockRoot as canonical - if _, err := db.ExecContext(ctx, "UPDATE beacon_indicies SET canonical = 1 WHERE beacon_block_root = ?", blockRoot[:]); err != nil { - return fmt.Errorf("failed to mark block root as canonical: %v", err) - } - - return nil -} - -func GenerateBlockIndicies(ctx context.Context, db SQLObject, signedBlock *cltypes.SignedBeaconBlock, forceCanonical bool) error { - block := signedBlock.Block - blockRoot, err := block.HashSSZ() - if err != nil { - return err - } - - bodyRoot, err := block.Body.HashSSZ() - if err != nil { - return err - } - - if forceCanonical { - _, err = db.ExecContext(ctx, "DELETE FROM beacon_indicies WHERE slot = ?;", block.Slot) - if err != nil { - return fmt.Errorf("failed to write block root to beacon_indicies: %v", err) - } - } - if _, err = db.ExecContext(ctx, "INSERT OR IGNORE INTO beacon_indicies (slot, proposer_index, beacon_block_root, state_root, parent_block_root, canonical, body_root, signature) VALUES (?, ?, ?, ?, ?, ?, ?, ?);", - block.Slot, - block.ProposerIndex, - blockRoot[:], - block.StateRoot[:], - block.ParentRoot[:], - forceCanonical, - bodyRoot[:], - signedBlock.Signature[:]); err != nil { - return fmt.Errorf("failed to write block root to beacon_indicies: %v", err) - } - - return nil -} - -func ReadParentBlockRoot(ctx context.Context, db SQLObject, blockRoot libcommon.Hash) (libcommon.Hash, error) { - var parentRoot libcommon.Hash - - // Execute the query. - err := db.QueryRowContext(ctx, "SELECT parent_block_root FROM beacon_indicies WHERE beacon_block_root = ?", blockRoot[:]).Scan(&parentRoot) - if err != nil { - if err == sql.ErrNoRows { - return libcommon.Hash{}, nil - } - return libcommon.Hash{}, fmt.Errorf("failed to retrieve ParentBlockRoot for BeaconBlockRoot: %v", err) - } - - return parentRoot, nil -} - -func TruncateCanonicalChain(ctx context.Context, db SQLObject, slot uint64) error { - // Execute the query. - _, err := db.ExecContext(ctx, ` - UPDATE beacon_indicies - SET canonical = 0 - WHERE slot > ?; - `, slot) - if err != nil { - if errors.Is(err, sql.ErrNoRows) { - return nil - } - return fmt.Errorf("failed to truncate canonical chain: %v", err) - } - - return nil -} - -func PruneIndicies(ctx context.Context, db SQLObject, fromSlot, toSlot uint64) error { - _, err := db.ExecContext(ctx, "DELETE FROM beacon_indicies WHERE slot >= ? AND slot <= ?", fromSlot, toSlot) - if err != nil { - return err - } - return nil -} - -func IterateBeaconIndicies(ctx context.Context, db SQLObject, fromSlot, toSlot uint64, fn func(slot uint64, beaconBlockRoot, parentBlockRoot, stateRoot libcommon.Hash, canonical bool) bool) error { - rows, err := db.QueryContext(ctx, "SELECT slot, beacon_block_root, state_root, parent_block_root, canonical FROM beacon_indicies WHERE slot BETWEEN ? AND ?", fromSlot, toSlot) - if err != nil { - return err - } - defer rows.Close() - - for rows.Next() { - var slot uint64 - var beaconBlockRoot libcommon.Hash - var stateRoot libcommon.Hash - var parentBlockRoot libcommon.Hash - var canonical uint64 - - err := rows.Scan(&slot, &beaconBlockRoot, &stateRoot, &parentBlockRoot, &canonical) - if err != nil { - return err - } - if !fn(slot, beaconBlockRoot, parentBlockRoot, stateRoot, canonical != 0) { - break - } - } - - if err = rows.Err(); err != nil { - return err - } - - return nil -} - -func ReadBeaconBlockRootsInSlotRange(ctx context.Context, db SQLObject, fromSlot, count uint64) ([]libcommon.Hash, []uint64, error) { - rows, err := db.QueryContext(ctx, "SELECT slot, beacon_block_root FROM beacon_indicies WHERE slot >= ? AND canonical > 0 LIMIT ?", fromSlot, count) - if err != nil { - return nil, nil, err - } - defer rows.Close() - roots := []libcommon.Hash{} - slots := []uint64{} - for rows.Next() { - var beaconBlockRoot libcommon.Hash - var slot uint64 - err := rows.Scan(&slot, &beaconBlockRoot) - if err != nil { - return nil, nil, err - } - roots = append(roots, beaconBlockRoot) - slots = append(slots, slot) - } - - if err = rows.Err(); err != nil { - return nil, nil, err - } - - return roots, slots, nil -} - -func ReadSignedHeaderByBlockRoot(ctx context.Context, db SQLObject, blockRoot libcommon.Hash) (*cltypes.SignedBeaconBlockHeader, bool, error) { - h := &cltypes.SignedBeaconBlockHeader{Header: &cltypes.BeaconBlockHeader{}} - var canonical bool - var signature []byte - // Execute the query. - err := db.QueryRowContext(ctx, `SELECT - slot, proposer_index, state_root, parent_block_root, canonical, body_root, signature - FROM beacon_indicies WHERE beacon_block_root = ?`, blockRoot).Scan( - &h.Header.Slot, - &h.Header.ProposerIndex, - &h.Header.Root, - &h.Header.ParentRoot, - &canonical, - &h.Header.BodyRoot, - &signature, - ) - - if err != nil { - if errors.Is(err, sql.ErrNoRows) { - return nil, false, nil - } - return nil, false, fmt.Errorf("failed to retrieve BeaconHeader: %v", err) - } - - copy(h.Signature[:], signature) - return h, canonical, nil -} - -func ReadSignedHeaderByStateRoot(ctx context.Context, db SQLObject, stateRoot libcommon.Hash) (*cltypes.SignedBeaconBlockHeader, bool, error) { - h := &cltypes.SignedBeaconBlockHeader{Header: &cltypes.BeaconBlockHeader{}} - var canonical bool - var signature []byte - // Execute the query. - err := db.QueryRowContext(ctx, `SELECT - slot, proposer_index, state_root, parent_block_root, canonical, body_root, signature - FROM beacon_indicies WHERE state_root = ?`, stateRoot).Scan( - &h.Header.Slot, - &h.Header.ProposerIndex, - &h.Header.Root, - &h.Header.ParentRoot, - &canonical, - &h.Header.BodyRoot, - &signature, - ) - - if err != nil { - if errors.Is(err, sql.ErrNoRows) { - return nil, false, nil - } - return nil, false, fmt.Errorf("failed to retrieve BeaconHeader: %v", err) - } - - copy(h.Signature[:], signature) - return h, canonical, nil -} - -func parseRowsIntoHeaders(rows *sql.Rows) ([]*cltypes.SignedBeaconBlockHeader, []bool, error) { - var signedHeaders []*cltypes.SignedBeaconBlockHeader - var canonicals []bool - - for rows.Next() { - var canonical bool - var signature []byte - h := &cltypes.SignedBeaconBlockHeader{Header: &cltypes.BeaconBlockHeader{}} - err := rows.Scan( - &h.Header.Slot, - &h.Header.ProposerIndex, - &h.Header.Root, - &h.Header.ParentRoot, - &canonical, - &h.Header.BodyRoot, - &signature, - ) - if err != nil { - return nil, nil, err - } - copy(h.Signature[:], signature) - signedHeaders = append(signedHeaders, h) - canonicals = append(canonicals, canonical) - } - return signedHeaders, canonicals, nil -} - -func ReadSignedHeadersBySlot(ctx context.Context, db SQLObject, slot uint64) ([]*cltypes.SignedBeaconBlockHeader, []bool, error) { - // Execute the query. - rows, err := db.QueryContext(ctx, `SELECT - slot, proposer_index, state_root, parent_block_root, canonical, body_root, signature - FROM beacon_indicies WHERE slot = ?`, slot) - if err != nil { - return nil, nil, err - } - defer rows.Close() - - return parseRowsIntoHeaders(rows) -} - -func ReadSignedHeadersByParentRoot(ctx context.Context, db SQLObject, parentRoot libcommon.Hash) ([]*cltypes.SignedBeaconBlockHeader, []bool, error) { - // Execute the query. - rows, err := db.QueryContext(ctx, `SELECT - slot, proposer_index, state_root, parent_block_root, canonical, body_root, signature - FROM beacon_indicies WHERE parent_root = ?`, parentRoot) - if err != nil { - return nil, nil, err - } - defer rows.Close() - - return parseRowsIntoHeaders(rows) -} - -func ReadSignedHeadersByParentRootAndSlot(ctx context.Context, db SQLObject, parentRoot libcommon.Hash, slot uint64) ([]*cltypes.SignedBeaconBlockHeader, []bool, error) { - // Execute the query. - rows, err := db.QueryContext(ctx, `SELECT - slot, proposer_index, state_root, parent_block_root, canonical, body_root, signature - FROM beacon_indicies WHERE parent_root = ? AND slot = ?`, parentRoot, slot) - if err != nil { - return nil, nil, err - } - defer rows.Close() - - return parseRowsIntoHeaders(rows) -} diff --git a/cl/persistence/block_saver.go b/cl/persistence/block_saver.go index db4b7480566..6bc35ae3c57 100644 --- a/cl/persistence/block_saver.go +++ b/cl/persistence/block_saver.go @@ -2,18 +2,19 @@ package persistence import ( "context" - "database/sql" "fmt" "io" "path" + "github.com/ledgerwatch/erigon/cl/sentinel/communication/ssz_snappy" + libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/erigon/cl/clparams" "github.com/ledgerwatch/erigon/cl/cltypes" "github.com/ledgerwatch/erigon/cl/persistence/beacon_indicies" "github.com/ledgerwatch/erigon/cl/phase1/execution_client" "github.com/ledgerwatch/erigon/cl/sentinel/peers" - "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel/communication/ssz_snappy" "github.com/spf13/afero" ) @@ -32,7 +33,31 @@ func NewBeaconChainDatabaseFilesystem(rawDB RawBeaconBlockChain, executionEngine } } -func (b beaconChainDatabaseFilesystem) GetRange(tx *sql.Tx, ctx context.Context, from uint64, count uint64) ([]*peers.PeeredObject[*cltypes.SignedBeaconBlock], error) { +func (b beaconChainDatabaseFilesystem) GetBlock(ctx context.Context, tx kv.Tx, slot uint64) (*peers.PeeredObject[*cltypes.SignedBeaconBlock], error) { + blockRoot, err := beacon_indicies.ReadCanonicalBlockRoot(tx, slot) + if err != nil { + return nil, err + } + if blockRoot == (libcommon.Hash{}) { + return nil, nil + } + + r, err := b.rawDB.BlockReader(ctx, slot, blockRoot) + if err != nil { + return nil, err + } + defer r.Close() + + block := cltypes.NewSignedBeaconBlock(b.cfg) + version := b.cfg.GetCurrentStateVersion(slot / b.cfg.SlotsPerEpoch) + if err := ssz_snappy.DecodeAndReadNoForkDigest(r, block, version); err != nil { + return nil, err + } + + return &peers.PeeredObject[*cltypes.SignedBeaconBlock]{Data: block}, nil +} + +func (b beaconChainDatabaseFilesystem) GetRange(ctx context.Context, tx kv.Tx, from uint64, count uint64) (*peers.PeeredObject[[]*cltypes.SignedBeaconBlock], error) { // Retrieve block roots for each ranged slot beaconBlockRooots, slots, err := beacon_indicies.ReadBeaconBlockRootsInSlotRange(ctx, tx, from, count) if err != nil { @@ -40,10 +65,10 @@ func (b beaconChainDatabaseFilesystem) GetRange(tx *sql.Tx, ctx context.Context, } if len(beaconBlockRooots) == 0 { - return nil, nil + return &peers.PeeredObject[[]*cltypes.SignedBeaconBlock]{}, nil } - blocks := []*peers.PeeredObject[*cltypes.SignedBeaconBlock]{} + blocks := []*cltypes.SignedBeaconBlock{} for idx, blockRoot := range beaconBlockRooots { slot := slots[idx] @@ -59,28 +84,24 @@ func (b beaconChainDatabaseFilesystem) GetRange(tx *sql.Tx, ctx context.Context, return nil, err } - blocks = append(blocks, &peers.PeeredObject[*cltypes.SignedBeaconBlock]{Data: block}) + blocks = append(blocks, block) } - return blocks, nil + return &peers.PeeredObject[[]*cltypes.SignedBeaconBlock]{Data: blocks}, nil } -func (b beaconChainDatabaseFilesystem) PurgeRange(tx *sql.Tx, ctx context.Context, from uint64, count uint64) error { - if err := beacon_indicies.IterateBeaconIndicies(ctx, tx, from, from+count, func(slot uint64, beaconBlockRoot, _, _ libcommon.Hash, _ bool) bool { +func (b beaconChainDatabaseFilesystem) PurgeRange(ctx context.Context, tx kv.RwTx, from uint64, count uint64) error { + if err := beacon_indicies.RangeBlockRoots(ctx, tx, from, from+count, func(slot uint64, beaconBlockRoot libcommon.Hash) bool { b.rawDB.DeleteBlock(ctx, slot, beaconBlockRoot) return true }); err != nil { return err } - if err := beacon_indicies.PruneIndicies(ctx, tx, from, from+count); err != nil { - return err - } - - return nil + return beacon_indicies.PruneBlockRoots(ctx, tx, from, from+count) } -func (b beaconChainDatabaseFilesystem) WriteBlock(tx *sql.Tx, ctx context.Context, block *cltypes.SignedBeaconBlock, canonical bool) error { +func (b beaconChainDatabaseFilesystem) WriteBlock(ctx context.Context, tx kv.RwTx, block *cltypes.SignedBeaconBlock, canonical bool) error { blockRoot, err := block.Block.HashSSZ() if err != nil { return err @@ -114,8 +135,20 @@ func (b beaconChainDatabaseFilesystem) WriteBlock(tx *sql.Tx, ctx context.Contex return err } } - - if err := beacon_indicies.GenerateBlockIndicies(ctx, tx, block, canonical); err != nil { + bodyRoot, err := block.Block.Body.HashSSZ() + if err != nil { + return err + } + if err := beacon_indicies.WriteBeaconBlockHeaderAndIndicies(ctx, tx, &cltypes.SignedBeaconBlockHeader{ + Signature: block.Signature, + Header: &cltypes.BeaconBlockHeader{ + Slot: block.Block.Slot, + ParentRoot: block.Block.ParentRoot, + ProposerIndex: block.Block.ProposerIndex, + Root: block.Block.StateRoot, + BodyRoot: bodyRoot, + }, + }, canonical); err != nil { return err } return nil diff --git a/cl/persistence/block_saver_test.go b/cl/persistence/block_saver_test.go index b94aa02ae45..c49e593feba 100644 --- a/cl/persistence/block_saver_test.go +++ b/cl/persistence/block_saver_test.go @@ -2,16 +2,16 @@ package persistence import ( "context" - "database/sql" "testing" _ "embed" libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon-lib/kv/memdb" "github.com/ledgerwatch/erigon/cl/clparams" "github.com/ledgerwatch/erigon/cl/cltypes" "github.com/ledgerwatch/erigon/cl/cltypes/solid" - "github.com/ledgerwatch/erigon/cl/persistence/sql_migrations" "github.com/ledgerwatch/erigon/cl/phase1/execution_client" "github.com/ledgerwatch/erigon/cl/utils" "github.com/ledgerwatch/erigon/core/types" @@ -33,6 +33,10 @@ func (m *mockEngine) ForkChoiceUpdate(finalized libcommon.Hash, head libcommon.H panic("unimplemented") } +func (m *mockEngine) FrozenBlocks() uint64 { + panic("unimplemented") +} + func (m *mockEngine) NewPayload(payload *cltypes.Eth1Block, beaconParentRoot *libcommon.Hash) (bool, error) { panic("unimplemented") } @@ -94,26 +98,9 @@ func getTestBlock() *cltypes.SignedBeaconBlock { return bcBlock } -func setupStore(t *testing.T, full bool) (BeaconChainDatabase, *sql.DB, execution_client.ExecutionEngine) { +func setupStore(t *testing.T, full bool) (BeaconChainDatabase, kv.RwDB, execution_client.ExecutionEngine) { // Open an in-memory SQLite database for testing - db, err := sql.Open("sqlite", ":memory:") - if err != nil { - t.Fatalf("Failed to open database: %v", err) - } - - // Start a transaction for testing - tx, err := db.Begin() - if err != nil { - t.Fatalf("Failed to start transaction: %v", err) - } - defer tx.Rollback() - - // Call ApplyMigrations with the test transaction - err = sql_migrations.ApplyMigrations(context.Background(), tx) - if err != nil { - t.Fatalf("ApplyMigrations failed: %v", err) - } - tx.Commit() + db := memdb.NewTestDB(t) // Create an in-memory filesystem fs := afero.NewMemMapFs() engine := newMockEngine() @@ -124,28 +111,28 @@ func TestBlockSaverStoreLoadPurgeFull(t *testing.T) { store, db, _ := setupStore(t, true) defer db.Close() - tx, _ := db.Begin() + tx, _ := db.BeginRw(context.Background()) defer tx.Rollback() ctx := context.Background() block := getTestBlock() - require.NoError(t, store.WriteBlock(tx, ctx, block, true)) + require.NoError(t, store.WriteBlock(ctx, tx, block, true)) - blks, err := store.GetRange(tx, context.Background(), block.Block.Slot, 1) + blks, err := store.GetRange(context.Background(), tx, block.Block.Slot, 1) require.NoError(t, err) - require.Equal(t, len(blks), 1) + require.Equal(t, len(blks.Data), 1) expectedRoot, err := block.HashSSZ() require.NoError(t, err) - haveRoot, err := blks[0].Data.HashSSZ() + haveRoot, err := blks.Data[0].HashSSZ() require.NoError(t, err) require.Equal(t, expectedRoot, haveRoot) - require.NoError(t, store.PurgeRange(tx, ctx, 0, 99999999999)) // THE PUURGE + require.NoError(t, store.PurgeRange(ctx, tx, 0, 99999999999)) // THE PUURGE - newBlks, err := store.GetRange(tx, context.Background(), block.Block.Slot, 1) + newBlks, err := store.GetRange(context.Background(), tx, block.Block.Slot, 1) require.NoError(t, err) - require.Equal(t, len(newBlks), 0) + require.Equal(t, len(newBlks.Data), 0) } diff --git a/cl/persistence/block_store.go b/cl/persistence/block_store.go index 812c4df4b8c..34d23192107 100644 --- a/cl/persistence/block_store.go +++ b/cl/persistence/block_store.go @@ -2,9 +2,10 @@ package persistence import ( "context" - "database/sql" "sync" + "time" + "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/erigon/cl/cltypes" "github.com/ledgerwatch/erigon/cl/phase1/network" "github.com/ledgerwatch/erigon/cl/rpc" @@ -18,7 +19,7 @@ type BeaconRpcSource struct { rpc *rpc.BeaconRpcP2P } -func (b *BeaconRpcSource) SaveBlocks(ctx context.Context, blocks []*peers.PeeredObject[*cltypes.SignedBeaconBlock]) error { +func (b *BeaconRpcSource) SaveBlocks(ctx context.Context, blocks *peers.PeeredObject[*cltypes.SignedBeaconBlock]) error { // it is a no-op because there is no need to do this return nil } @@ -29,24 +30,42 @@ func NewBeaconRpcSource(rpc *rpc.BeaconRpcP2P) *BeaconRpcSource { } } -func (b *BeaconRpcSource) GetRange(_ *sql.Tx, ctx context.Context, from uint64, count uint64) ([]*peers.PeeredObject[*cltypes.SignedBeaconBlock], error) { +func (*BeaconRpcSource) GetBlock(ctx context.Context, tx kv.Tx, slot uint64) (*peers.PeeredObject[*cltypes.SignedBeaconBlock], error) { + panic("unimplemented") +} + +func (b *BeaconRpcSource) GetRange(ctx context.Context, _ kv.Tx, from uint64, count uint64) (*peers.PeeredObject[[]*cltypes.SignedBeaconBlock], error) { if count == 0 { return nil, nil } - responses, pid, err := b.rpc.SendBeaconBlocksByRangeReq(ctx, from, count) - if err != nil { - b.rpc.BanPeer(pid) - return nil, err - } - out := make([]*peers.PeeredObject[*cltypes.SignedBeaconBlock], 0, len(responses)) - for _, v := range responses { - out = append(out, &peers.PeeredObject[*cltypes.SignedBeaconBlock]{Data: v, Peer: pid}) + var responses *peers.PeeredObject[[]*cltypes.SignedBeaconBlock] + reqInterval := time.NewTicker(200 * time.Millisecond) + doneRespCh := make(chan *peers.PeeredObject[[]*cltypes.SignedBeaconBlock], 1) + defer reqInterval.Stop() + + for { + select { + case <-reqInterval.C: + go func() { + responses, pid, err := b.rpc.SendBeaconBlocksByRangeReq(ctx, from, count) + if err != nil { + return + } + select { + case doneRespCh <- &peers.PeeredObject[[]*cltypes.SignedBeaconBlock]{Data: responses, Peer: pid}: + default: + } + }() + case <-ctx.Done(): + return nil, ctx.Err() + case responses = <-doneRespCh: + return responses, nil + } } - return out, nil } // a noop for rpc source since we always return new data -func (b *BeaconRpcSource) PurgeRange(_ *sql.Tx, ctx context.Context, from uint64, count uint64) error { +func (b *BeaconRpcSource) PurgeRange(ctx context.Context, _ kv.RwTx, from uint64, count uint64) error { return nil } @@ -60,6 +79,10 @@ type GossipSource struct { blocks *btree.Map[uint64, chan *peers.PeeredObject[*cltypes.SignedBeaconBlock]] } +func (*GossipSource) GetBlock(ctx context.Context, tx kv.Tx, slot uint64) (*peers.PeeredObject[*cltypes.SignedBeaconBlock], error) { + panic("unimplemented") +} + func NewGossipSource(ctx context.Context, gossip *network.GossipManager) *GossipSource { g := &GossipSource{ gossip: gossip, @@ -93,21 +116,22 @@ func (b *GossipSource) grabOrCreate(ctx context.Context, id uint64) chan *peers. } return ch } -func (b *GossipSource) GetRange(_ *sql.Tx, ctx context.Context, from uint64, count uint64) ([]*peers.PeeredObject[*cltypes.SignedBeaconBlock], error) { - out := make([]*peers.PeeredObject[*cltypes.SignedBeaconBlock], 0, count) +func (b *GossipSource) GetRange(ctx context.Context, _ kv.Tx, from uint64, count uint64) (*peers.PeeredObject[[]*cltypes.SignedBeaconBlock], error) { + out := &peers.PeeredObject[[]*cltypes.SignedBeaconBlock]{} for i := from; i < from+count; i++ { ch := b.grabOrCreate(ctx, i) select { case <-ctx.Done(): return nil, ctx.Err() case item := <-ch: - out = append(out, item) + out.Data = append(out.Data, item.Data) + out.Peer = item.Peer } } return out, nil } -func (b *GossipSource) PurgeRange(_ *sql.Tx, ctx context.Context, from uint64, count uint64) error { +func (b *GossipSource) PurgeRange(ctx context.Context, _ kv.RwTx, from uint64, count uint64) error { b.mu.Lock() defer b.mu.Unlock() initSize := count diff --git a/cl/persistence/db_config/db_config.go b/cl/persistence/db_config/db_config.go index 3d8bb9adc40..340d025014e 100644 --- a/cl/persistence/db_config/db_config.go +++ b/cl/persistence/db_config/db_config.go @@ -1,8 +1,11 @@ package db_config import ( + "bytes" "context" - "database/sql" + + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon/ethdb/cbor" ) type DatabaseConfiguration struct{ PruneDepth uint64 } @@ -11,28 +14,24 @@ var DefaultDatabaseConfiguration = DatabaseConfiguration{PruneDepth: 1000} // should be 1_000_000 -func WriteConfigurationIfNotExist(ctx context.Context, tx *sql.Tx, cfg DatabaseConfiguration) error { - var count int - err := tx.QueryRow("SELECT COUNT(*) FROM data_config;").Scan(&count) - if err != nil { - return err - } - if count > 0 { - return nil - } - _, err = tx.ExecContext(ctx, "INSERT INTO data_config (prune_depth) VALUES (?);", cfg.PruneDepth) - if err != nil { +func WriteConfigurationIfNotExist(ctx context.Context, tx kv.RwTx, cfg DatabaseConfiguration) error { + var b bytes.Buffer + if err := cbor.Encoder(&b).Encode(cfg); err != nil { return err } - return nil + + return tx.Put(kv.DatabaseInfo, []byte("config"), b.Bytes()) } -func ReadConfiguration(ctx context.Context, tx *sql.Tx) (DatabaseConfiguration, error) { - var pruneDepth uint64 +func ReadConfiguration(ctx context.Context, tx kv.Tx) (DatabaseConfiguration, error) { + var cfg DatabaseConfiguration - err := tx.QueryRowContext(ctx, "SELECT prune_depth FROM data_config").Scan(&pruneDepth) + cfgEncoded, err := tx.GetOne(kv.DatabaseInfo, []byte("config")) if err != nil { - return DatabaseConfiguration{}, err + return cfg, err + } + if err := cbor.Decoder(bytes.NewReader(cfgEncoded)).Decode(&cfg); err != nil { + return cfg, err } - return DatabaseConfiguration{PruneDepth: pruneDepth}, nil + return cfg, err } diff --git a/cl/persistence/db_config/db_config_test.go b/cl/persistence/db_config/db_config_test.go index 8a07d14ce19..0133f4862a5 100644 --- a/cl/persistence/db_config/db_config_test.go +++ b/cl/persistence/db_config/db_config_test.go @@ -2,46 +2,23 @@ package db_config import ( "context" - "database/sql" "testing" - "github.com/ledgerwatch/erigon/cl/persistence/sql_migrations" + "github.com/ledgerwatch/erigon-lib/kv/memdb" "github.com/stretchr/testify/require" _ "modernc.org/sqlite" ) -func setupTestDB(t *testing.T) *sql.DB { - db, err := sql.Open("sqlite", ":memory:") - if err != nil { - t.Fatalf("Failed to open database: %v", err) - } - - // Start a transaction for testing - tx, err := db.Begin() - if err != nil { - t.Fatalf("Failed to start transaction: %v", err) - } - defer tx.Rollback() - - // Call ApplyMigrations with the test transaction - err = sql_migrations.ApplyMigrations(context.Background(), tx) - if err != nil { - t.Fatalf("ApplyMigrations failed: %v", err) - } - tx.Commit() - return db -} - func TestDBConfig(t *testing.T) { - db := setupTestDB(t) + db := memdb.NewTestDB(t) defer db.Close() - - tx, err := db.Begin() + tx, err := db.BeginRw(context.Background()) + defer tx.Rollback() require.NoError(t, err) + c := DatabaseConfiguration{PruneDepth: 69} require.NoError(t, WriteConfigurationIfNotExist(context.Background(), tx, c)) cfg, err := ReadConfiguration(context.Background(), tx) require.NoError(t, err) - require.Equal(t, cfg, c) } diff --git a/cl/persistence/format/chunk_encoding/chunks.go b/cl/persistence/format/chunk_encoding/chunks.go new file mode 100644 index 00000000000..28afb2008d9 --- /dev/null +++ b/cl/persistence/format/chunk_encoding/chunks.go @@ -0,0 +1,68 @@ +package chunk_encoding + +import ( + "encoding/binary" + "io" +) + +type DataType int + +const ( + ChunkDataType DataType = 0 + PointerDataType DataType = 1 +) + +// writeChunk writes a chunk to the writer. +func WriteChunk(w io.Writer, buf []byte, t DataType) error { + + // prefix is type of chunk + length of chunk + prefix := make([]byte, 8) + binary.BigEndian.PutUint64(prefix, uint64(len(buf))) + prefix[0] = byte(t) + if _, err := w.Write(prefix); err != nil { + return err + } + if _, err := w.Write(buf); err != nil { + return err + } + return nil +} + +func ReadChunk(r io.Reader, out io.Writer) (t DataType, err error) { + prefix := make([]byte, 8) + if _, err := r.Read(prefix); err != nil { + return DataType(0), err + } + t = DataType(prefix[0]) + prefix[0] = 0 + + bufLen := binary.BigEndian.Uint64(prefix) + if bufLen == 0 { + return + } + + if _, err = io.CopyN(out, r, int64(bufLen)); err != nil { + return + } + return +} + +func ReadChunkToBytes(r io.Reader) (b []byte, t DataType, err error) { + prefix := make([]byte, 8) + if _, err := r.Read(prefix); err != nil { + return nil, DataType(0), err + } + t = DataType(prefix[0]) + prefix[0] = 0 + + bufLen := binary.BigEndian.Uint64(prefix) + if bufLen == 0 { + return + } + b = make([]byte, bufLen) + + if _, err = r.Read(b); err != nil { + return + } + return +} diff --git a/cl/persistence/snapshot_format/blocks.go b/cl/persistence/format/snapshot_format/blocks.go similarity index 57% rename from cl/persistence/snapshot_format/blocks.go rename to cl/persistence/format/snapshot_format/blocks.go index 84624162acc..66e4077318d 100644 --- a/cl/persistence/snapshot_format/blocks.go +++ b/cl/persistence/format/snapshot_format/blocks.go @@ -1,14 +1,21 @@ package snapshot_format import ( + "bytes" "encoding/binary" "fmt" "io" + "sync" "github.com/ledgerwatch/erigon/cl/clparams" "github.com/ledgerwatch/erigon/cl/cltypes" + "github.com/ledgerwatch/erigon/cl/persistence/format/chunk_encoding" ) +var buffersPool = sync.Pool{ + New: func() interface{} { return &bytes.Buffer{} }, +} + type ExecutionBlockReaderByNumber interface { BlockByNumber(number uint64) (*cltypes.Eth1Block, error) } @@ -25,31 +32,20 @@ const ( denebBlockAdditionalBaseOffset = 4 /*BlobKzgCommitments Offset*/ ) -func writeChunkLength(w io.Writer, length uint64) error { - temp := make([]byte, 8) - binary.BigEndian.PutUint64(temp, length) - - if _, err := w.Write(temp); err != nil { - return err - } - - return nil -} - func writeExecutionBlockPtr(w io.Writer, p *cltypes.Eth1Block) error { temp := make([]byte, 8) binary.BigEndian.PutUint64(temp, p.BlockNumber) - return writeChunk(w, temp, pointerDataType, false) + return chunk_encoding.WriteChunk(w, temp, chunk_encoding.PointerDataType) } func readExecutionBlockPtr(r io.Reader) (uint64, error) { - b, dT, err := readChunk(r, false) + b, dT, err := chunk_encoding.ReadChunkToBytes(r) if err != nil { return 0, err } - if dT != pointerDataType { - return 0, fmt.Errorf("malformed beacon block, invalid block pointer type %d, expected: %d", dT, pointerDataType) + if dT != chunk_encoding.PointerDataType { + return 0, fmt.Errorf("malformed beacon block, invalid block pointer type %d, expected: %d", dT, chunk_encoding.ChunkDataType) } return binary.BigEndian.Uint64(b), nil } @@ -73,6 +69,10 @@ func computeInitialOffset(version clparams.StateVersion) uint64 { // WriteBlockForSnapshot writes a block to the given writer in the format expected by the snapshot. func WriteBlockForSnapshot(block *cltypes.SignedBeaconBlock, w io.Writer) error { + bodyRoot, err := block.Block.Body.HashSSZ() + if err != nil { + return err + } // Maybe reuse the buffer? encoded, err := block.EncodeSSZ(nil) if err != nil { @@ -82,28 +82,20 @@ func WriteBlockForSnapshot(block *cltypes.SignedBeaconBlock, w io.Writer) error if _, err := w.Write([]byte{byte(version)}); err != nil { return err } + if _, err := w.Write(bodyRoot[:]); err != nil { + return err + } currentChunkLength := computeInitialOffset(version) body := block.Block.Body // count in body for phase0 fields currentChunkLength += uint64(body.ProposerSlashings.EncodingSizeSSZ()) currentChunkLength += uint64(body.AttesterSlashings.EncodingSizeSSZ()) - - // Write the chunk and chunk attestations - if err := writeChunk(w, encoded[:currentChunkLength], chunkDataType, false); err != nil { - return err - } - encoded = encoded[currentChunkLength:] - if err := writeChunk(w, encoded[:uint64(body.Attestations.EncodingSizeSSZ())], chunkDataType, true); err != nil { - return err - } - encoded = encoded[body.Attestations.EncodingSizeSSZ():] - currentChunkLength = 0 - + currentChunkLength += uint64(body.Attestations.EncodingSizeSSZ()) currentChunkLength += uint64(body.Deposits.EncodingSizeSSZ()) currentChunkLength += uint64(body.VoluntaryExits.EncodingSizeSSZ()) - - if err := writeChunk(w, encoded[:currentChunkLength], chunkDataType, false); err != nil { + // Write the chunk and chunk attestations + if err := chunk_encoding.WriteChunk(w, encoded[:currentChunkLength], chunk_encoding.ChunkDataType); err != nil { return err } // we are done if we are before altair @@ -117,79 +109,81 @@ func WriteBlockForSnapshot(block *cltypes.SignedBeaconBlock, w io.Writer) error if version <= clparams.BellatrixVersion { return nil } - return writeChunk(w, encoded, chunkDataType, false) + return chunk_encoding.WriteChunk(w, encoded, chunk_encoding.ChunkDataType) } -func ReadBlockFromrSnapshot(r io.Reader, executionReader ExecutionBlockReaderByNumber, cfg *clparams.BeaconChainConfig) (*cltypes.SignedBeaconBlock, error) { - // Metadata section is just the current hardfork of the block. TODO(give it a useful purpose) - v, err := readMetadataForBlock(r) - if err != nil { - return nil, err +func readMetadataForBlock(r io.Reader, b []byte) (clparams.StateVersion, error) { + if _, err := r.Read(b); err != nil { + return 0, err } + return clparams.StateVersion(b[0]), nil +} - // Read the first chunk - chunk1, dT1, err := readChunk(r, false) +func ReadBlockFromSnapshot(r io.Reader, executionReader ExecutionBlockReaderByNumber, cfg *clparams.BeaconChainConfig) (*cltypes.SignedBeaconBlock, error) { + block := cltypes.NewSignedBeaconBlock(cfg) + buffer := buffersPool.Get().(*bytes.Buffer) + defer buffersPool.Put(buffer) + buffer.Reset() + + v, err := ReadRawBlockFromSnapshot(r, buffer, executionReader, cfg) if err != nil { return nil, err } - if dT1 != chunkDataType { - return nil, fmt.Errorf("malformed beacon block, invalid chunk 1 type %d, expected: %d", dT1, chunkDataType) - } - // Read the attestation chunk (2nd chunk) - chunk2, dT2, err := readChunk(r, true) + return block, block.DecodeSSZ(buffer.Bytes(), int(v)) +} + +func ReadRawBlockFromSnapshot(r io.Reader, out io.Writer, executionReader ExecutionBlockReaderByNumber, cfg *clparams.BeaconChainConfig) (clparams.StateVersion, error) { + metadataSlab := make([]byte, 33) + // Metadata section is just the current hardfork of the block. + v, err := readMetadataForBlock(r, metadataSlab) if err != nil { - return nil, err - } - if dT2 != chunkDataType { - return nil, fmt.Errorf("malformed beacon block, invalid chunk 2 type %d, expected: %d", dT2, chunkDataType) + return v, err } - // Read the 3rd chunk - chunk3, dT3, err := readChunk(r, false) + + // Read the first chunk + dT1, err := chunk_encoding.ReadChunk(r, out) if err != nil { - return nil, err + return v, err } - if dT3 != chunkDataType { - return nil, fmt.Errorf("malformed beacon block, invalid chunk 3 type %d, expected: %d", dT3, chunkDataType) + if dT1 != chunk_encoding.ChunkDataType { + return v, fmt.Errorf("malformed beacon block, invalid chunk 1 type %d, expected: %d", dT1, chunk_encoding.ChunkDataType) } + if v <= clparams.AltairVersion { - return blockFromChunks(v, cfg, chunk1, chunk2, chunk3) + return v, nil } // Read the block pointer and retrieve chunk4 from the execution reader blockPointer, err := readExecutionBlockPtr(r) if err != nil { - return nil, err + return v, err } executionBlock, err := executionReader.BlockByNumber(blockPointer) if err != nil { - return nil, err + return v, err } - // Read the 4th chunk - chunk4, err := executionBlock.EncodeSSZ(nil) + if executionBlock == nil { + return v, fmt.Errorf("execution block %d not found", blockPointer) + } + // TODO(Giulio2002): optimize GC + eth1Bytes, err := executionBlock.EncodeSSZ(nil) if err != nil { - return nil, err + return v, err + } + if _, err := out.Write(eth1Bytes); err != nil { + return v, err } if v <= clparams.BellatrixVersion { - return blockFromChunks(v, cfg, chunk1, chunk2, chunk3, chunk4) + return v, nil } // Read the 5h chunk - chunk5, dT5, err := readChunk(r, false) + dT2, err := chunk_encoding.ReadChunk(r, out) if err != nil { - return nil, err - } - if dT5 != chunkDataType { - return nil, fmt.Errorf("malformed beacon block, invalid chunk 5 type %d, expected: %d", dT5, chunkDataType) + return v, err } - - return blockFromChunks(v, cfg, chunk1, chunk2, chunk3, chunk4, chunk5) -} - -func blockFromChunks(v clparams.StateVersion, cfg *clparams.BeaconChainConfig, chunks ...[]byte) (*cltypes.SignedBeaconBlock, error) { - block := cltypes.NewSignedBeaconBlock(cfg) - plainSSZ := []byte{} - for _, chunk := range chunks { - plainSSZ = append(plainSSZ, chunk...) + if dT2 != chunk_encoding.ChunkDataType { + return v, fmt.Errorf("malformed beacon block, invalid chunk 5 type %d, expected: %d", dT2, chunk_encoding.ChunkDataType) } - return block, block.DecodeSSZ(plainSSZ, int(v)) + return v, nil } diff --git a/cl/persistence/snapshot_format/blocks_test.go b/cl/persistence/format/snapshot_format/blocks_test.go similarity index 75% rename from cl/persistence/snapshot_format/blocks_test.go rename to cl/persistence/format/snapshot_format/blocks_test.go index 55f3c7b5518..8021c3fcc38 100644 --- a/cl/persistence/snapshot_format/blocks_test.go +++ b/cl/persistence/format/snapshot_format/blocks_test.go @@ -7,7 +7,7 @@ import ( "github.com/ledgerwatch/erigon/cl/clparams" "github.com/ledgerwatch/erigon/cl/cltypes" - "github.com/ledgerwatch/erigon/cl/persistence/snapshot_format" + "github.com/ledgerwatch/erigon/cl/persistence/format/snapshot_format" "github.com/ledgerwatch/erigon/cl/utils" "github.com/stretchr/testify/require" ) @@ -27,8 +27,15 @@ var capellaBlockSSZSnappy []byte //go:embed test_data/deneb.ssz_snappy var denebBlockSSZSnappy []byte +var emptyBlock = cltypes.NewSignedBeaconBlock(&clparams.MainnetBeaconConfig) + // obtain the test blocks func getTestBlocks(t *testing.T) []*cltypes.SignedBeaconBlock { + var emptyBlockCapella = cltypes.NewSignedBeaconBlock(&clparams.MainnetBeaconConfig) + emptyBlockCapella.Block.Slot = clparams.MainnetBeaconConfig.CapellaForkEpoch * 32 + + emptyBlock.EncodingSizeSSZ() + emptyBlockCapella.EncodingSizeSSZ() denebBlock := cltypes.NewSignedBeaconBlock(&clparams.MainnetBeaconConfig) capellaBlock := cltypes.NewSignedBeaconBlock(&clparams.MainnetBeaconConfig) bellatrixBlock := cltypes.NewSignedBeaconBlock(&clparams.MainnetBeaconConfig) @@ -40,26 +47,18 @@ func getTestBlocks(t *testing.T) []*cltypes.SignedBeaconBlock { require.NoError(t, utils.DecodeSSZSnappy(bellatrixBlock, bellatrixBlockSSZSnappy, int(clparams.BellatrixVersion))) require.NoError(t, utils.DecodeSSZSnappy(altairBlock, altairBlockSSZSnappy, int(clparams.AltairVersion))) require.NoError(t, utils.DecodeSSZSnappy(phase0Block, phase0BlockSSZSnappy, int(clparams.Phase0Version))) - return []*cltypes.SignedBeaconBlock{phase0Block, altairBlock, bellatrixBlock, capellaBlock, denebBlock} -} - -type TestBlockReader struct { - Block *cltypes.Eth1Block -} - -func (t *TestBlockReader) BlockByNumber(number uint64) (*cltypes.Eth1Block, error) { - return t.Block, nil + return []*cltypes.SignedBeaconBlock{phase0Block, altairBlock, bellatrixBlock, capellaBlock, denebBlock, emptyBlock, emptyBlockCapella} } func TestBlockSnapshotEncoding(t *testing.T) { for _, blk := range getTestBlocks(t) { - var br TestBlockReader + var br snapshot_format.MockBlockReader if blk.Version() >= clparams.BellatrixVersion { - br = TestBlockReader{Block: blk.Block.Body.ExecutionPayload} + br = snapshot_format.MockBlockReader{Block: blk.Block.Body.ExecutionPayload} } var b bytes.Buffer require.NoError(t, snapshot_format.WriteBlockForSnapshot(blk, &b)) - blk2, err := snapshot_format.ReadBlockFromrSnapshot(&b, &br, &clparams.MainnetBeaconConfig) + blk2, err := snapshot_format.ReadBlockFromSnapshot(&b, &br, &clparams.MainnetBeaconConfig) require.NoError(t, err) _ = blk2 hash1, err := blk.HashSSZ() diff --git a/cl/persistence/snapshot_format/test_data/altair.ssz_snappy b/cl/persistence/format/snapshot_format/test_data/altair.ssz_snappy similarity index 100% rename from cl/persistence/snapshot_format/test_data/altair.ssz_snappy rename to cl/persistence/format/snapshot_format/test_data/altair.ssz_snappy diff --git a/cl/persistence/snapshot_format/test_data/bellatrix.ssz_snappy b/cl/persistence/format/snapshot_format/test_data/bellatrix.ssz_snappy similarity index 100% rename from cl/persistence/snapshot_format/test_data/bellatrix.ssz_snappy rename to cl/persistence/format/snapshot_format/test_data/bellatrix.ssz_snappy diff --git a/cl/persistence/snapshot_format/test_data/capella.ssz_snappy b/cl/persistence/format/snapshot_format/test_data/capella.ssz_snappy similarity index 100% rename from cl/persistence/snapshot_format/test_data/capella.ssz_snappy rename to cl/persistence/format/snapshot_format/test_data/capella.ssz_snappy diff --git a/cl/persistence/snapshot_format/test_data/deneb.ssz_snappy b/cl/persistence/format/snapshot_format/test_data/deneb.ssz_snappy similarity index 100% rename from cl/persistence/snapshot_format/test_data/deneb.ssz_snappy rename to cl/persistence/format/snapshot_format/test_data/deneb.ssz_snappy diff --git a/cl/persistence/snapshot_format/test_data/phase0.ssz_snappy b/cl/persistence/format/snapshot_format/test_data/phase0.ssz_snappy similarity index 100% rename from cl/persistence/snapshot_format/test_data/phase0.ssz_snappy rename to cl/persistence/format/snapshot_format/test_data/phase0.ssz_snappy diff --git a/cl/persistence/format/snapshot_format/test_util.go b/cl/persistence/format/snapshot_format/test_util.go new file mode 100644 index 00000000000..3993c1648b7 --- /dev/null +++ b/cl/persistence/format/snapshot_format/test_util.go @@ -0,0 +1,11 @@ +package snapshot_format + +import "github.com/ledgerwatch/erigon/cl/cltypes" + +type MockBlockReader struct { + Block *cltypes.Eth1Block +} + +func (t *MockBlockReader) BlockByNumber(number uint64) (*cltypes.Eth1Block, error) { + return t.Block, nil +} diff --git a/cl/persistence/interface.go b/cl/persistence/interface.go index 3a4c22d6907..56b7be8064b 100644 --- a/cl/persistence/interface.go +++ b/cl/persistence/interface.go @@ -2,21 +2,22 @@ package persistence import ( "context" - "database/sql" "io" libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/erigon/cl/cltypes" "github.com/ledgerwatch/erigon/cl/sentinel/peers" ) type BlockSource interface { - GetRange(tx *sql.Tx, ctx context.Context, from uint64, count uint64) ([]*peers.PeeredObject[*cltypes.SignedBeaconBlock], error) - PurgeRange(tx *sql.Tx, ctx context.Context, from uint64, count uint64) error + GetRange(ctx context.Context, tx kv.Tx, from uint64, count uint64) (*peers.PeeredObject[[]*cltypes.SignedBeaconBlock], error) + PurgeRange(ctx context.Context, tx kv.RwTx, from uint64, count uint64) error + GetBlock(ctx context.Context, tx kv.Tx, slot uint64) (*peers.PeeredObject[*cltypes.SignedBeaconBlock], error) } type BeaconChainWriter interface { - WriteBlock(tx *sql.Tx, ctx context.Context, block *cltypes.SignedBeaconBlock, canonical bool) error + WriteBlock(ctx context.Context, tx kv.RwTx, block *cltypes.SignedBeaconBlock, canonical bool) error } type RawBeaconBlockChain interface { diff --git a/cl/persistence/snapshot_format/attestations.go b/cl/persistence/snapshot_format/attestations.go deleted file mode 100644 index f5305195675..00000000000 --- a/cl/persistence/snapshot_format/attestations.go +++ /dev/null @@ -1,194 +0,0 @@ -package snapshot_format - -// TODO: Make this actually usable. -// func EncodeAttestationsForStorage(attestations *solid.ListSSZ[*solid.Attestation], buf []byte) []byte { -// if attestations.Len() == 0 { -// return nil -// } -// encoded := buf - -// referencedAttestations := []solid.AttestationData{ -// nil, // Full diff -// } -// // Pre-allocate some memory. -// attestations.Range(func(_ int, attestation *solid.Attestation, _ int) bool { -// data := attestation.AttestantionData() -// sig := attestation.Signature() -// // Encode attestation metadata -// // Also we need to keep track of aggregation bits size manually. -// encoded = append(encoded, byte(len(attestation.AggregationBits()))) -// encoded = append(encoded, attestation.AggregationBits()...) -// // Encode signature -// encoded = append(encoded, sig[:]...) -// // Encode attestation body -// var bestEncoding []byte -// bestEncodingIndex := 0 -// // try all non-repeating attestations. -// for i, att := range referencedAttestations { -// currentEncoding := encodeAttestationDataForStorage(attestation.AttestantionData(), att) -// // check if we find a better fit. -// if len(bestEncoding) == 0 || len(bestEncoding) > len(currentEncoding) { -// bestEncodingIndex = i -// bestEncoding = currentEncoding -// // cannot get lower than 1, so accept it as best. -// if len(bestEncoding) == 1 { -// break -// } -// } -// } -// // If it is not repeated then save it. -// if len(bestEncoding) != 1 { -// referencedAttestations = append(referencedAttestations, data) -// } -// encoded = append(encoded, byte(bestEncodingIndex)) -// encoded = append(encoded, bestEncoding...) -// // Encode attester index -// encoded = append(encoded, data.RawValidatorIndex()...) -// return true -// }) -// return encoded -// } - -// // EncodeAttestationsDataForStorage encodes attestation data and compress everything by defaultData. -// func encodeAttestationDataForStorage(data solid.AttestationData, defaultData solid.AttestationData) []byte { -// fieldSet := byte(0) -// var ret []byte - -// numBuffer := make([]byte, 4) - -// // Encode in slot -// if defaultData == nil || data.Slot() != defaultData.Slot() { -// slotBytes := make([]byte, 4) -// binary.LittleEndian.PutUint32(slotBytes, uint32(data.Slot())) -// ret = append(ret, slotBytes...) -// } else { -// fieldSet = 1 -// } - -// if defaultData == nil || !bytes.Equal(data.RawBeaconBlockRoot(), defaultData.RawBeaconBlockRoot()) { -// root := data.BeaconBlockRoot() -// ret = append(ret, root[:]...) -// } else { -// fieldSet |= 2 -// } - -// if defaultData == nil || data.Source().Epoch() != defaultData.Source().Epoch() { -// binary.LittleEndian.PutUint32(numBuffer, uint32(data.Source().Epoch())) -// ret = append(ret, numBuffer...) -// } else { -// fieldSet |= 4 -// } - -// if defaultData == nil || !bytes.Equal(data.Source().RawBlockRoot(), defaultData.Source().RawBlockRoot()) { -// ret = append(ret, data.Source().RawBlockRoot()...) -// } else { -// fieldSet |= 8 -// } - -// if defaultData == nil || data.Target().Epoch() != defaultData.Target().Epoch() { -// binary.LittleEndian.PutUint32(numBuffer, uint32(data.Target().Epoch())) - -// ret = append(ret, numBuffer...) -// } else { -// fieldSet |= 16 -// } - -// if defaultData == nil || !bytes.Equal(data.Target().RawBlockRoot(), defaultData.Target().RawBlockRoot()) { -// root := data.Target().BlockRoot() -// ret = append(ret, root[:]...) -// } else { -// fieldSet |= 32 -// } -// return append([]byte{fieldSet}, ret...) -// } - -// func DecodeAttestationsForStorage(buf []byte, out []byte) error { -// var signature libcommon.Bytes96 - -// if len(buf) == 0 { -// return nil -// } - -// referencedAttestations := []solid.AttestationData{ -// nil, // Full diff -// } -// // current position is how much we read. -// pos := 0 -// for pos != len(buf) { -// attestationData := solid.NewAttestationData() -// // Decode aggregations bits -// aggrBitsLength := int(buf[pos]) -// pos++ -// aggrBits := buf[pos : pos+aggrBitsLength] -// pos += aggrBitsLength -// // Decode signature -// copy(signature[:], buf[pos:]) -// pos += 96 -// // decode attestation body -// // 1) read comparison index -// comparisonIndex := int(buf[pos]) -// pos++ -// n := decodeAttestationDataForStorage(buf[pos:], referencedAttestations[comparisonIndex], attestationData) -// // field set is not null, so we need to remember it. -// if n != 1 { -// referencedAttestations = append(referencedAttestations, attestationData) -// } -// pos += n -// // decode attester index -// attestationData.SetValidatorIndexWithRawBytes(buf[pos:]) -// pos += 8 -// attestations.Append(solid.NewAttestionFromParameters(aggrBits, attestationData, signature)) -// } -// return nil -// } - -// // DecodeAttestationDataForStorage decodes attestation data and decompress everything by defaultData. -// func decodeAttestationDataForStorage(buf []byte, defaultData solid.AttestationData, target solid.AttestationData) (n int) { -// if len(buf) == 0 { -// return -// } -// fieldSet := buf[0] -// n++ -// if fieldSet&1 > 0 { -// target.SetSlotWithRawBytes(defaultData.RawSlot()) -// } else { -// target.SetSlot(uint64(binary.LittleEndian.Uint32(buf[n:]))) -// n += 4 -// } - -// if fieldSet&2 > 0 { -// target.SetBeaconBlockRootWithRawBytes(defaultData.RawBeaconBlockRoot()) -// } else { -// target.SetBeaconBlockRootWithRawBytes(buf[n : n+32]) -// n += 32 -// } - -// if fieldSet&4 > 0 { -// target.Source().SetRawEpoch(defaultData.Source().RawEpoch()) -// } else { -// target.Source().SetEpoch(uint64(binary.LittleEndian.Uint32(buf[n:]))) -// n += 4 -// } - -// if fieldSet&8 > 0 { -// target.Source().SetRawBlockRoot(defaultData.Source().RawBlockRoot()) -// } else { -// target.Source().SetRawBlockRoot(buf[n : n+32]) -// n += 32 -// } - -// if fieldSet&16 > 0 { -// target.Target().SetRawEpoch(defaultData.Target().RawEpoch()) -// } else { -// target.Target().SetEpoch(uint64(binary.LittleEndian.Uint32(buf[n:]))) -// n += 4 -// } - -// if fieldSet&32 > 0 { -// target.Target().SetRawBlockRoot(defaultData.Target().RawBlockRoot()) -// } else { -// target.Target().SetRawBlockRoot(buf[n : n+32]) -// n += 32 -// } -// return -// } diff --git a/cl/persistence/snapshot_format/attestations_test.go b/cl/persistence/snapshot_format/attestations_test.go deleted file mode 100644 index abcafdb713e..00000000000 --- a/cl/persistence/snapshot_format/attestations_test.go +++ /dev/null @@ -1,40 +0,0 @@ -package snapshot_format_test - -// func TestAttestationsEncoding(t *testing.T) { -// attVec := solid.NewDynamicListSSZ[*solid.Attestation](256) -// for i := 0; i < 256; i++ { -// attVec.Append(solid.NewAttestionFromParameters( -// []byte{byte(i)}, -// solid.NewAttestionDataFromParameters( -// uint64(i*i*i), -// uint64(i*i*i), -// [32]byte{}, -// solid.NewCheckpointFromParameters([32]byte{45, 67}, 219), -// solid.NewCheckpointFromParameters([32]byte{67, 98}, 219), -// ), libcommon.Bytes96{byte(i)})) -// } -// plain, err := attVec.EncodeSSZ(nil) -// require.NoError(t, err) - -// compacted := format.EncodeAttestationsForStorage(attVec, nil) -// require.Less(t, len(compacted), len(plain)) - -// // Now-decode it back. -// resAttVec := solid.NewDynamicListSSZ[*solid.Attestation](256) -// require.NoError(t, format.DecodeAttestationsForStorage(compacted, resAttVec)) - -// require.Equal(t, attVec.Len(), resAttVec.Len()) - -// for i := 0; i < 256; i++ { -// require.Equal(t, attVec.Get(i).Signature(), resAttVec.Get(i).Signature()) -// require.Equal(t, attVec.Get(i).AggregationBits(), resAttVec.Get(i).AggregationBits()) - -// require.Equal(t, attVec.Get(i).AttestantionData().Slot(), resAttVec.Get(i).AttestantionData().Slot()) -// require.Equal(t, attVec.Get(i).AttestantionData().ValidatorIndex(), resAttVec.Get(i).AttestantionData().ValidatorIndex()) -// require.Equal(t, attVec.Get(i).AttestantionData().BeaconBlockRoot(), resAttVec.Get(i).AttestantionData().BeaconBlockRoot()) -// require.Equal(t, attVec.Get(i).AttestantionData().Source(), resAttVec.Get(i).AttestantionData().Source()) -// require.Equal(t, attVec.Get(i).AttestantionData().Target(), resAttVec.Get(i).AttestantionData().Target()) - -// require.Equal(t, attVec.Get(i), resAttVec.Get(i)) -// } -// } diff --git a/cl/persistence/snapshot_format/chunks.go b/cl/persistence/snapshot_format/chunks.go deleted file mode 100644 index bf9960f4cda..00000000000 --- a/cl/persistence/snapshot_format/chunks.go +++ /dev/null @@ -1,61 +0,0 @@ -package snapshot_format - -import ( - "encoding/binary" - "fmt" - "io" - - "github.com/ledgerwatch/erigon/cl/clparams" - "github.com/ledgerwatch/erigon/cl/utils" -) - -type dataType int - -const ( - chunkDataType dataType = 0 - pointerDataType dataType = 1 -) - -// writeChunk writes a chunk to the writer. -func writeChunk(w io.Writer, buf []byte, t dataType, snappy bool) error { - if snappy { - buf = utils.CompressSnappy(buf) - } - // prefix is type of chunk + length of chunk - prefix := make([]byte, 8) - binary.BigEndian.PutUint64(prefix, uint64(len(buf))) - prefix[0] = byte(t) - if _, err := w.Write(prefix); err != nil { - return err - } - if _, err := w.Write(buf); err != nil { - return err - } - return nil -} - -func readChunk(r io.Reader, snappy bool) (buf []byte, t dataType, err error) { - prefix := make([]byte, 8) - if _, err := r.Read(prefix); err != nil { - return nil, dataType(0), err - } - t = dataType(prefix[0]) - prefix[0] = 0 - fmt.Println(binary.BigEndian.Uint64(prefix)) - buf = make([]byte, binary.BigEndian.Uint64(prefix)) - if _, err := r.Read(buf); err != nil { - return nil, t, err - } - if snappy { - buf, err = utils.DecompressSnappy(buf) - } - return buf, t, err -} - -func readMetadataForBlock(r io.Reader) (clparams.StateVersion, error) { - b := []byte{0} - if _, err := r.Read(b); err != nil { - return 0, err - } - return clparams.StateVersion(b[0]), nil -} diff --git a/cl/persistence/sql_migrations/migrations.go b/cl/persistence/sql_migrations/migrations.go deleted file mode 100644 index f11f2098cc7..00000000000 --- a/cl/persistence/sql_migrations/migrations.go +++ /dev/null @@ -1,57 +0,0 @@ -package sql_migrations - -import ( - "context" - "database/sql" - "errors" -) - -var migrations = []string{ - `CREATE TABLE IF NOT EXISTS beacon_indicies ( - beacon_block_root BLOB NOT NULL CHECK(length(beacon_block_root) = 32), - slot INTEGER NOT NULL, - proposer_index INTEGER NOT NULL, - state_root BLOB NOT NULL CHECK(length(state_root) = 32), - parent_block_root BLOB NOT NULL CHECK(length(parent_block_root) = 32), - canonical INTEGER NOT NULL DEFAULT 0, -- 0 for false, 1 for true - body_root BLOB NOT NULL CHECK(length(state_root) = 32), - signature BLOB NOT NULL CHECK(length(signature) = 96), - PRIMARY KEY (beacon_block_root) - );`, - `CREATE INDEX idx_slot ON beacon_indicies (slot);`, - `CREATE INDEX idx_state_root ON beacon_indicies (state_root);`, - `CREATE INDEX idx_parent_block_root ON beacon_indicies (parent_block_root);`, - `CREATE TABLE IF NOT EXISTS data_config ( - prune_depth INTEGER NOT NULL - );`, -} - -func ApplyMigrations(ctx context.Context, tx *sql.Tx) error { - if _, err := tx.ExecContext(ctx, "CREATE TABLE IF NOT EXISTS schema_version (version INTEGER NOT NULL);"); err != nil { - return err - } - // Get current schema version - var currentVersion int - err := tx.QueryRow("SELECT version FROM schema_version").Scan(¤tVersion) - if errors.Is(err, sql.ErrNoRows) { - currentVersion = -1 - } else if err != nil { - return err - } - - // Apply missing migrations - for i := currentVersion + 1; i < len(migrations); i++ { - _, err = tx.Exec(migrations[i]) - if err != nil { - return err - } - - // Update schema version - _, err = tx.Exec("UPDATE schema_version SET version = ?", i) - if err != nil { - return err - } - } - - return nil -} diff --git a/cl/persistence/sql_migrations/migrations_test.go b/cl/persistence/sql_migrations/migrations_test.go deleted file mode 100644 index 50989a1fc79..00000000000 --- a/cl/persistence/sql_migrations/migrations_test.go +++ /dev/null @@ -1,40 +0,0 @@ -package sql_migrations - -import ( - "context" - "database/sql" - "testing" - - _ "modernc.org/sqlite" -) - -func TestApplyMigrations(t *testing.T) { - // Open an in-memory SQLite database for testing - db, err := sql.Open("sqlite", ":memory:") - if err != nil { - t.Fatalf("Failed to open database: %v", err) - } - defer db.Close() - - // Start a transaction for testing - tx, err := db.Begin() - if err != nil { - t.Fatalf("Failed to start transaction: %v", err) - } - defer tx.Rollback() - - // Call ApplyMigrations with the test transaction - err = ApplyMigrations(context.Background(), tx) - if err != nil { - t.Fatalf("ApplyMigrations failed: %v", err) - } - - // You can add more tests here, such as verifying if the schema_version table is created and populated correctly, - // or checking if the beacon_indices table and index are created correctly. - - // Commit the transaction (or rollback, if you're just testing) - err = tx.Commit() - if err != nil { - t.Fatalf("Failed to commit transaction: %v", err) - } -} diff --git a/cl/phase1/core/rawdb/accessors.go b/cl/phase1/core/rawdb/accessors.go deleted file mode 100644 index 337686c711d..00000000000 --- a/cl/phase1/core/rawdb/accessors.go +++ /dev/null @@ -1,101 +0,0 @@ -package rawdb - -import ( - "encoding/binary" - "fmt" - - "github.com/ledgerwatch/erigon/cl/clparams" - "github.com/ledgerwatch/erigon/cl/phase1/core/state" - - libcommon "github.com/ledgerwatch/erigon-lib/common" - "github.com/ledgerwatch/erigon-lib/common/length" - "github.com/ledgerwatch/erigon-lib/kv" - - "github.com/ledgerwatch/erigon/cl/cltypes" - "github.com/ledgerwatch/erigon/cl/utils" -) - -func EncodeNumber(n uint64) []byte { - ret := make([]byte, 4) - binary.BigEndian.PutUint32(ret, uint32(n)) - return ret -} - -// WriteBeaconState writes beacon state for specific block to database. -func WriteBeaconState(tx kv.Putter, state *state.CachingBeaconState) error { - data, err := utils.EncodeSSZSnappy(state) - if err != nil { - return err - } - - return tx.Put(kv.BeaconState, EncodeNumber(state.Slot()), data) -} - -func WriteBeaconBlock(tx kv.RwTx, signedBlock *cltypes.SignedBeaconBlock) error { - block := signedBlock.Block - - blockRoot, err := block.HashSSZ() - if err != nil { - return err - } - // database key is is [slot + block root] - slotBytes := EncodeNumber(block.Slot) - key := append(slotBytes, blockRoot[:]...) - value, err := signedBlock.EncodeSSZ(nil) - if err != nil { - return err - } - - // Write block hashes - // We write the block indexing - if err := tx.Put(kv.RootSlotIndex, blockRoot[:], slotBytes); err != nil { - return err - } - if err := tx.Put(kv.RootSlotIndex, block.StateRoot[:], key); err != nil { - return err - } - // Finally write the beacon block - return tx.Put(kv.BeaconBlocks, key, utils.CompressSnappy(value)) -} - -func ReadBeaconBlock(tx kv.RwTx, blockRoot libcommon.Hash, slot uint64, version clparams.StateVersion) (*cltypes.SignedBeaconBlock, uint64, libcommon.Hash, error) { - encodedBeaconBlock, err := tx.GetOne(kv.BeaconBlocks, append(EncodeNumber(slot), blockRoot[:]...)) - if err != nil { - return nil, 0, libcommon.Hash{}, err - } - if len(encodedBeaconBlock) == 0 { - return nil, 0, libcommon.Hash{}, nil - } - if encodedBeaconBlock, err = utils.DecompressSnappy(encodedBeaconBlock); err != nil { - return nil, 0, libcommon.Hash{}, err - } - signedBlock := cltypes.NewSignedBeaconBlock(&clparams.MainnetBeaconConfig) - if err := signedBlock.DecodeSSZ(encodedBeaconBlock, int(version)); err != nil { - return nil, 0, libcommon.Hash{}, err - } - var eth1Number uint64 - var eth1Hash libcommon.Hash - if signedBlock.Block.Body.ExecutionPayload != nil { - eth1Number = signedBlock.Block.Body.ExecutionPayload.BlockNumber - eth1Hash = signedBlock.Block.Body.ExecutionPayload.BlockHash - } - return signedBlock, eth1Number, eth1Hash, err -} - -func WriteFinalizedBlockRoot(tx kv.Putter, slot uint64, blockRoot libcommon.Hash) error { - return tx.Put(kv.FinalizedBlockRoots, EncodeNumber(slot), blockRoot[:]) -} - -func ReadFinalizedBlockRoot(tx kv.Getter, slot uint64) (libcommon.Hash, error) { - root, err := tx.GetOne(kv.FinalizedBlockRoots, EncodeNumber(slot)) - if err != nil { - return libcommon.Hash{}, err - } - if len(root) == 0 { - return libcommon.Hash{}, nil - } - if len(root) != length.Hash { - return libcommon.Hash{}, fmt.Errorf("read block root with mismatching length") - } - return libcommon.BytesToHash(root), nil -} diff --git a/cl/phase1/core/rawdb/accessors_test.go b/cl/phase1/core/rawdb/accessors_test.go deleted file mode 100644 index e15907f49a2..00000000000 --- a/cl/phase1/core/rawdb/accessors_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package rawdb_test - -import ( - "testing" - - "github.com/ledgerwatch/erigon/cl/clparams" - "github.com/ledgerwatch/erigon/cl/phase1/core/rawdb" - - libcommon "github.com/ledgerwatch/erigon-lib/common" - "github.com/ledgerwatch/erigon-lib/kv/memdb" - "github.com/ledgerwatch/erigon/cl/cltypes" - "github.com/stretchr/testify/require" -) - -func TestBeaconBlock(t *testing.T) { - _, tx := memdb.NewTestTx(t) - signedBeaconBlock := cltypes.NewSignedBeaconBlock(&clparams.MainnetBeaconConfig) - require.NoError(t, signedBeaconBlock.DecodeSSZ(rawdb.SSZTestBeaconBlock, int(clparams.BellatrixVersion))) - - root, err := signedBeaconBlock.Block.HashSSZ() - require.NoError(t, err) - - require.NoError(t, rawdb.WriteBeaconBlock(tx, signedBeaconBlock)) - newBlock, _, _, err := rawdb.ReadBeaconBlock(tx, root, signedBeaconBlock.Block.Slot, clparams.BellatrixVersion) - require.NoError(t, err) - newRoot, err := newBlock.HashSSZ() - require.NoError(t, err) - root, err = signedBeaconBlock.HashSSZ() - require.NoError(t, err) - - require.Equal(t, root, newRoot) -} - -func TestFinalizedBlockRoot(t *testing.T) { - _, tx := memdb.NewTestTx(t) - signedBeaconBlock := cltypes.NewSignedBeaconBlock(&clparams.MainnetBeaconConfig) - require.NoError(t, signedBeaconBlock.DecodeSSZ(rawdb.SSZTestBeaconBlock, int(clparams.BellatrixVersion))) - - root, err := signedBeaconBlock.Block.HashSSZ() - require.NoError(t, err) - - require.NoError(t, rawdb.WriteFinalizedBlockRoot(tx, signedBeaconBlock.Block.Slot, root)) - newRoot, err := rawdb.ReadFinalizedBlockRoot(tx, signedBeaconBlock.Block.Slot) - require.NoError(t, err) - require.Equal(t, libcommon.BytesToHash(root[:]), newRoot) -} diff --git a/cl/phase1/core/rawdb/config.go b/cl/phase1/core/rawdb/config.go index 4346c81ce85..9c5389f22c5 100644 --- a/cl/phase1/core/rawdb/config.go +++ b/cl/phase1/core/rawdb/config.go @@ -2,9 +2,9 @@ package rawdb import ( "encoding/json" + "math" "github.com/ledgerwatch/erigon-lib/kv" - "github.com/ledgerwatch/erigon/common/math" ) type BeaconDataConfig struct { diff --git a/cl/phase1/core/rawdb/config_test.go b/cl/phase1/core/rawdb/config_test.go deleted file mode 100644 index 53b733d2e10..00000000000 --- a/cl/phase1/core/rawdb/config_test.go +++ /dev/null @@ -1,19 +0,0 @@ -package rawdb_test - -import ( - "testing" - - "github.com/ledgerwatch/erigon-lib/kv/memdb" - "github.com/ledgerwatch/erigon/cl/phase1/core/rawdb" - "github.com/stretchr/testify/require" -) - -func TestBeaconDataConfig(t *testing.T) { - _, tx := memdb.NewTestTx(t) - cfg := new(rawdb.BeaconDataConfig) - require.NoError(t, rawdb.WriteBeaconDataConfig(tx, cfg)) - - newCfg, err := rawdb.ReadBeaconDataConfig(tx) - require.NoError(t, err) - require.Equal(t, cfg, newCfg) -} diff --git a/cl/phase1/core/rawdb/test_utils.go b/cl/phase1/core/rawdb/test_utils.go deleted file mode 100644 index a07b7d2ad64..00000000000 --- a/cl/phase1/core/rawdb/test_utils.go +++ /dev/null @@ -1,5 +0,0 @@ -package rawdb - -import "encoding/hex" - -var SSZTestBeaconBlock, _ = hex.DecodeString("640000008997ec6da35c366e19412d96edbab8db862634d849f95bd57ad25e3faa292a8aebfad0d21291dfbcee6178ec3b684748177e04993b43ff95876e4c35370993aec8a20d10c4de8e8ca070baa2772ea60ac1097100f2bdab45dc7fbf1102965f24a1a64f00000000006a300400000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050a6abe003b99a9be225b53dc3bff875315b2688b7e0c28fadfe98569e2fd6cc2c54000000b598bdc18bf593e4a2ad7431abfea5af242b3f890d06bafeb059594ed517bdb4e26cc2e81b840593ed1f9a382fcc730d18875f91387224d28a7a6ce0759ac02de90466b8e4cc6f992685cb3c181c348d4847458d2f91d9c8804d01d7abc32aa360e416dc4227ae2f4635a924d331972550d7c2f5d0897ef4f6bee0b1a390e94bff7b070000000000a4aa98e1c809da071f818e57153481270d5aa048a19be4b6c9d4050bad9bdaee00000000000000000000000000000000000000000000000000000000000000008001000080010000800100008084000080840000fff7ffff7ffeffffefffff7ffffffffffffffffffdffffffffffffffffffffffdffffffff7ffffbdffffff7ffeffffffff7ffffffffffffdfffffffcffff7fffac27369b928b90b18264905a3e2c0468dafb620020273f1c2f6553cdbc3feced2c972f9d72bafe0dbcc396e1e87eb4e70f574cd95ff0dcbab8d2b5fc7645c1bed06df6b17a9fc8123450540905c16ed62b54769c906189a16d8275961b937b808084000000020000020300000404000006050000080600000a0700000c0800000e090000100a0000120b0000140c0000160d0000180e00001a0f00001c1000001e11000020120000221300002414000026150000281600002a1700002c1800002e190000301a0000321b0000341c0000361d0000381e00003a1f00003c2000003e21000040220000422300004424000046250000482600004a2700004c2800004e290000502a0000522b0000542c0000562d0000582e00005a2f00005c3000005e31000060320000623300006434000066350000683600006a3700006c3800006e390000703a0000723b0000743c0000763d0000783e00007a3f00007c4000007e41000080420000824300008444000086450000884600008a4700008c4800008e490000904a0000924b0000944c0000964d0000984e00009a4f00009c5000009e510000a0520000a2530000a4540000a6550000a8560000aa570000ac580000ae590000b05a0000b25b0000b45c0000b65d0000b85e0000ba5f0000bc600000be610000c0620000c2630000c4640000c6650000c8660000ca670000cc680000ce690000d06a0000d26b0000d46c0000d66d0000d86e0000da6f0000dc700000de710000e0720000e2730000e4740000e6750000e8760000ea770000ec780000ee790000f07a0000f27b0000f47c0000f67d0000f87e0000fa7f0000fc800000fe810000e4000000a0a64f000000000000000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95875df8719ed61f0200308a7311fce34ef538be482af723159dcca5890e5f9a5bb945440c73b0525ce7a729536b2f922314438d6df8dfd0f634c6a143957f16f0052f11fbe72c1d07afa46dcfa9dd03cb6d3b724ee4e0daad46cf30b18f8b9afc000000000800000000000000000000000000000000000000000000000002e4000000a0a64f00000000001a000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95b573262f6cb537f37a314b640afd41d1083107b5a7b78fde6079855895756fd1351d6b2642290cd195339cfbc00f903d0467287786535adf2eb46124f5e413c5b052b140ff6fa1c7e260a2b9937df3c5be1e69166644f3821794ad0c890b62ad000000000000000000000000000000400000000000000000000000000004e4000000a0a64f000000000028000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b958a4af5d4876a6b953405acdaa59032be3fd497554b639b84c568209caa31e167c450cfcc14afbbc6fe5a319fcabf6dc617bc4bf5eb1fa2b8a873d00322eb3985cfcad1a8be168ce289ca18f528228a2170dce8a367c9e199869b33661c453d09000000000200000004000000000000000000000008000020000000000004e4000000a0a64f000000000005000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95b7eb4904203273879633c0bb35371be4d7eb0a281d45fb1cfbbd9aa81ebabda909abf8776a3eb36984de66b943d530fd0779b80313f2bc6c62c74b4317a4018a09f45037d614720c49525b702fa669049c0c88f4ff121a53f42e5f71a84b9876000000040000000000000000000000000000000000000000000400000004e4000000a0a64f00000000000200000000000000ba6dfce86e1ed5ac4afc1651c66497f4e31b5f471090232f00ba7d3a761ea468347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d020000000000ba6dfce86e1ed5ac4afc1651c66497f4e31b5f471090232f00ba7d3a761ea46889c0eeae804d10a5c5c521175575559e9543b5afff3d1986c79a78b1cbf0af4638ce1a7ab8bbef2871664cb69a79b6bd189b528884c14fe125318376989f033655b7329cdd817a8ae67fdf8e4f58f8496b27df726acc60d5f06c975d4a0cf9a9000000000000000020000000000000000000000000000000000000000004e4000000a0a64f000000000026000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95b23be2e6c71204f845b977c8125c8902812d4641eb2f7b57feff7c6104bf96d7957d3d230fb174bb8ef694784479b3450f97ee7c8c4178a3803ade1cbd03884ab969da4f5bab4c3040021a1c82cbdafe93e1e51aa5e3d457e5f27f22dbb694c5000000000000000000000000000000080000000000000000000000000002e4000000a0a64f000000000009000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95a023f084ebbea1eb12727826526571e6d218c3a01224522c6810aa9ceba369313c2380fa8d4dad6cdba3b9d62b87518b0ef8790f6db880631441d77209e8a6273c29e0916c6522e7e94d0dcac906ca88a038bd196daae3378609b7cc2557755f000000000000000000000000000000000000000000000000000020000004e4000000a0a64f00000000003e000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95abe85979700c10a96d494ed3acb8172315b8acd178eaf89ed25ab5794df87214847b4d4e6aa0f56e51d570044e607d7f134064d2c207b56bf6caab51f56d33b471ec38caa9a16c3fc884c1edcb6beb22668b163e26296e7e1e6ca67ae6ea2dcf000000000000000400000000000000000000000000000000000000000004e4000000a0a64f00000000002a000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050a3a1d96721d35071f312ab92b72c1adbe121cfcd428c994f2ce18c4282daf20bd503343084ace6c82e27e4767e58eb6d15dfecf57c2f362e15574d9dc924845bac401b5631793e41b6d904f125848a60a6893e1c6f1f28918ee4b3c3ca06df7dffffffffffffffffffffffffffffffffffffffffbfffffffbffffbffff03e4000000a0a64f00000000001c000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b959795c634dc6de7b742ee91abf7d62ecd03fc3d3baf2f0d7bc556c2aac3f034e4a0f5c17f51121cd7c1466526fdd3b642091f2549325ce20ace30b1ad07ec12ad2c460c9e47ffedb1d70e9329e84764204fd761d99f7526ae4f366f3612dc3276000000000000000000000000000000000000000000000000000000000404e4000000a0a64f000000000003000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050a79a807e5f799bb4b03c108824a2b0a1af7aa79a3a58e42d0bd4201212892303225452f7c756c632ddd47c77f6503411185ba3d5c42483e2c0420e734efd61e8322c49e086beb113e7021f8551463eb26666e19f60b4e691d23d80d3d9cc8883ffffffffffffffffffffffffffffffffffffffffffffffffffdfffffff07e4000000a0a64f00000000000d000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a7448465250509650be875d135eaa553cffe50339d9acd5f2b6172d76e0f8432a31d9b0960fa531c91bf2753428fdb3269750a49cc6350ccacc3ff64ec263dc0c560bb42806ddbc70bd4b4e0e3de23c4ffc4cac333603900571d8e07bbc724c57a649f86a3073fffffffffffffffffffffffffffffffffffffffffffffffffff7ffffff07e4000000a0a64f00000000002e000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a74484652505088a03032a53c1f459820e2a083a5eb97eb9b488bfe4314cc93f38f5916f1b4bb8f46149dc2fadf35a60998534f859e7310380287bc9726b5a34e573732870d264fe8f4e68095118facfbdf8482700dc4ee5131b61ed6981977483119561eb67effffffffffffffffffffffff7fffffffffefffffffffffffffffffffff03e4000000a0a64f00000000000c000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95838222efebbc42680175d7dc36167a2eba30fa6787805c15d11e5bbad5e9c70bcc2267a64af891d41586dbfe245af7300eed0f945dc35b87a46400628f207edfa28122400d9cd86cf3c2b90fb61534f18a4a681a6c52d0a3d0c01edefbf27435000000000000000000000000080000000080000000000000000000000002e4000000a0a64f000000000007000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a7448465250508ace36bcdfaa188584e4203280d40e1712459de543c1ac23753a001b2223764e3fe0ea9d92f077af959627750752df4a1052544b89063bbb77c4b03f9c6b24f7e145fcb5d491d2ce75f6ee890dc87187a8e4e87c5644e172d3c6d13c2f57a9a2fffffffffffffffffffffffffffffffffffffffffdffffffffffffffff07e4000000a0a64f000000000015000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95959f6691705effb2699d934a38fe6e1cd128ed424180af8cbf2a526b8837ae6bc40d283df56b6c3dcfed0d7c948801d61281187cf186b8c01398b1e45bd2ab7b1b73a0d852e5e5c9ff81413e08865c2676bdb5df952eb7f8c2a7c475646c88c1000000000000000000400000000000000200000000000000000000000002e4000000a0a64f000000000012000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a7448465250508483d231734cb64ebbe0bd06598ac78176498ad400e39695f6fd82529d2f60c45a6628cce1453b10674802851ed009c418999ebf96d52bbb8dc646c462f587c7b5656defef9da4023a4485f08c7a9c812e95d86a6aa953d580b9a1207ee2e875ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff07e4000000a0a64f000000000024000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b958dfadf268ec42892891bc9c5ab4a7611841370361c93b53e56820dd921e8c673f53053c36163b292fc2a8f0d93870e420aab6631fe4b32a9e77a3738e43f1decc3d8e60134650912ef945e57cb4edb71e1a4e52e365445d1b1ba916d2344d513000040000000000000000000000100000000000000000000000000000004e4000000a0a64f000000000020000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b958bd9dee96f63649e83426243d04753fbe8aa2200b8a4e1e9e3700a358372d7473c0bc0276f307304cd7a4988a2ddbafa05f7518bfa4cb9aaecb1f0a5af0ff0496d537d285b089b3a8daa486ad7feb0e155bb2b5abd2b3c83fff764e1ad2f7fa3000008000000000000000000000004000000000000000000000000000004e4000000a0a64f00000000002d000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050a1ce830db27b65b020e10687b068159c07fe4eb5a6de0759e8c4c1f1e6356aa4d12a7b17c3c2d24f3d1ac7aec1561676104144512f898601fcfa2c7dc950396abdc451d961cd3ac525251c678c70b5a4e42bf1a10a9c84e0181679cc041d52baefffffffffffffffffffffefffffffffffffffffffffffffffffeffeff07e4000000a0a64f00000000003e000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050979b55315793213c50288893b4f68f75b5b5626b2796bc63aefeb76d498b97386415d6a34921cf44994dedd94ca666ee1367be1137fe5173a965126a25600114e45dccb763bdfc7eaf170143362e5f15fae2aeeae31e8a0c221ac03426f32e14fffffffffffffffbffffffffffffffffffffffffffffffffffffffffff07e4000000a0a64f000000000026000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050b532477a111d0650968d8bb8020774a8486c4a99c06a6c21d1d4659e448f49e7f9d8e34c2642949f14d9a91886838b80134d543d84afdcc75aac5dad20543adac6bd1af522c5edbd0753633f490405f4764edd2a14c82f306b7de714ebac592cfffffffffffff7fffffffffffffffff7ffffffffffffffffffffffffff03e4000000a0a64f000000000010000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95aadb78375a1d0d427e9a46ee455e2da7097767772dbf000fea5318464642bfa0d46ede7f12b0319140f2a85cdf0aa18a0c7e1f10fbff90627e067647da226005c0ae30199d1b3c06618d10e072dfacbb8221c6f8779dcd5560515332f5ef0e56000004000000000000100001000000000000000000000000000000000004e4000000a0a64f000000000031000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050b17c936471f41bfbd9e0cdbe404a8cadb68238b5af5fe1b8cd779584f2246577bbcb4b9357f54f6298ed50c7901c010a0db0a08620bafaa17bfa4c4fed3f2f31ec76930382ac0652ace40ca5e639626d77ede515140f960ce89590da2efb7b01fffffffbfffffffff7ffffffffffffffffffffffffffffffffffffffff07e4000000a0a64f000000000037000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95b58fc6b7c31287f87d5d7775cd5c11802ec4a06b9eac20ac20bdbf00acaa2202376f65fa43f463c846655f5d60e2c0a808bde1cfaf35b752798c375d727310b164cd0650c12ae76645c083042ca5f41622b187f722c88f1757ef368fc6ec8b38000000000000000000000000000000000000000000000000000000004002e4000000a0a64f000000000021000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b958634cf61889c95553dce98e137f2ca77b164d74ba8dd762e635ada921387feebac5952688e45295f066cdc1ab8da825a080849eaf7eabc0e15a96db7421ff3831094d6e3dacbacb33a227f9c8c7b71250f110a81d0d9ca3152480ba8bbbe3765000000000000000000001000000000000100000000000000000000000004e4000000a0a64f00000000001f000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050b4bfda9580bdb187e0d9ac26a2a2f1d8e6f4377f31677fd19412ac851f06c8fc73349a4128f95567d6d6f1684663b232101407bd418b5b406a05441acb482555714bf2781a7e13e083070a77e637ddd6b6afb7ae6d5d1ace7e7aafdd1d3e9e45ffffffffffffffffffffff7fffffffffffffffffffffffffffffefffff07e4000000a0a64f000000000016000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a7448465250508dae08c7aeaa1dc30fe61b200784bc1ad48069639401ec41e0008e72932cf1087c1cb72d1bf94dc7a1bf75e251fbfdcb19e9750648bd8318381b41f12709871160e04ca1d68d5021bd001f70914e310cb819e84e37da3810b12e5bd008d44d46ffffffffffffffffffdfffffffffffffffffffffffffffffffffffffff07e4000000a0a64f000000000032000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050adf0f48de53445bf20a2dc1076eedbae1de3d99163e21ea0cf42af68e854a1a1feee4ebc92c50869b219cef1ae740fec01319713fd85b3ab98d786da66ffef49178a4c3241bb8bfb3fb99818cd4032d48b7ba35ccdecd3d712d2f547e91b28f2fffdfffffffffffff7ffffffffffffffffffffffffffffffffffffffef07e4000000a0a64f000000000021000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a74484652505086a1ec2580636363b8379c1e8980593557a6d198e06c21686242ca4d1f4f505afd3827a043fe8e882eb09ef8aa9dd8560dfa4d8f79d64f4af5ce02bcb47e36e67a7e8118fe39411089b986bf1b60b848d053f17d888f56ee0a307693382c33d2ffffffffffffffffffffeffffffffffffefff7ffffffffffffffffffff07e4000000a0a64f00000000001f000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95b5a98c9d787279dac92315d997ab18d604c15fa45fcaec2ccacc20251af7de99eb2bfece9e5cb9b1dbab76c853c7544e177f436887dc42641941ebd110e65899455b0ebdc908bcea147e7bc574bb4f88f9399d6b1ddc311dbb4facf0c884c765000000000000000000000080000000000000000000000000000010000004e4000000a0a64f00000000000a000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95a12b8e8640dc40e219454db4ba9b0dd8902ae9cd452a6abe20eb641b6a4b2918c78e4f5790acceefe8f964bb190b3da6171ab9c9a885886d791eb926219aadf9b81b6776440673fb1e0f0f2b369c0896bbc72ebfc1cd4a1785716b96d9d1861d000000000000000000000000000000000000000000002000000080000004e4000000a0a64f00000000000e000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a7448465250508171f1987fc4c2efb0fe8fbbab5fabfef44e51daea2cc486a844b0bdf3e027f0470d473d67baea25663c6f4447e3cf4100bb1c832e992e0bd9f79e008ce37062e1bbb74502494a3190610c4dd7048b23bc525031e5543a6b269a1bf9e1eae057ffffffffffffffffffffffffefffffffffffffffffffffffffffffffff07e4000000a0a64f000000000035000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b958d893f9b6956345b2fa647157e39ddb72d6ddb74339c045bd6f611c7331d95da0382cd0e0bea2f15cfb7b5f947f41e9905166b917c41623d2e244b8a451c03ade812846f91fd126ccd24524cdc98385d4cf32fed34937dd416629c90f752d8c4000000000000000000000000000000000200000000000000004000000004e4000000a0a64f000000000034000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050825eedd37f5631b1e9bd9fa43115e139cd4a49d87ecded6799dba1bef7c37380dc4b1b4e51c58c4dbbf4dbf4c8071fa6055256945dfd8c7af4cc073336ff4f24bbd573894baabf3ee5c8e13ab84a4341f79aefccaeb6cac00026e7251d3cea91fffffffffffffffffffffbfffffffbffefffffffffffffffffffffffff07e4000000a0a64f00000000000e000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95b50036908796974cf031b00c2333685ea6a83cb045174add9c27834778d8daec2bbfb7cd9b9ac132e2f02f51ecc0c67916385e2e494ec6958c7d2e5224dad771a9cb8fafef85e504357919f3cce3cef804b38bdc80085cc1869011c66b52ae0f000000000000000000000000100000000000000000000000000000000004e4000000a0a64f00000000001e000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95a57c511cfa01a350fd0c3d5aa490eca2a398d1190f9d2b081e2cdd6ebedfa03f95aa35f503d4d0f4cbac3a4c1e3251a106c1ec4c57a35ee7b7eda40c6445a347b7f5f24c291b7fa8fd16724a614cc13f85cfa764bc49a02188d63b566c4a2f6e000000000000000000000000000020000000000000000000000000000004e4000000a0a64f000000000029000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b9589933d9d9374e1d5ea9c0d146606491d110e85e2d48ca69089e312533d36dc9f7ef99beb21a62221edaf62714bddef210363477f25aabb24b41565e283f6ed5175a661382a950e4761b59ea5821391b5007eadfb64e9f4e03b2a4bc062f440ea000000000000200000000000000000000000000000000000000000000005e4000000a0a64f000000000017000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a74484652505089ec7867a679aa96c850f5d966343835689c894ee5e233769f48931b1cf1d1833a9c433bc49ce2bfa93137d8fa09029911c142b3067deb751947d3185b4d5021594e20c549373241d917c21faa9d467825d77a75484d8ba031d01a294ae5ae6cfffffffffffffbfffffefffffffffffffff7ffffffffffffffbfffffff07e4000000a0a64f00000000002b000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95b103737a916be450cdba6c4663910cc717b779e5e0e76a09515768ff910176a2368a86a228609c9615961eb647b1c3690b3f64f5e3e61adcc4ab0b031d5f267f768df2e133a500eff0d2b3f33decfd58b9fb33f28d943cb6098d3044d1d37905100000004000000000000000000000000000000000000000080000000004e4000000a0a64f00000000001a000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050a25f5f85c9e7903585a5dbc4eefaf42880ca8b64d64f1e13c5c50d9ab44481cc2ea21535f8c869555ec57771aec53e01162f9cc901e76335fa5cc79c0473a5c93f2bacea42963b11aa50c965af41deaf5e78cf471464969118174945addf347affffffffffffffffffffffffffffedbfffffffffffffffbdffffffffff07e4000000a0a64f000000000000000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a74484652505096c0109a2a6f5a46229df912a122e39844feb7e3d864083fb51b3192283c21fc87e2a1271ae01292eeaa0686ca0a2570074e301217c7622373149233097c4ef77c2d12752048750da3375f944af7eb4f6235181529e7640144bfa3d795fc998efffffffff7ffffffffffffffffbfffffffffffffffffffffffffffffff03e4000000a0a64f00000000001b000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95b359bc97259aa32a3b5293ffc65fc9c97e38ad07edb1293e556059a5698562b18b9c494276e531f8b6aa5c38817397b90b8e43e6911bb078d6a6dec70b0f32f1e5be7bb3a339edc4a5b1f1de33428a406fbb914ad79a20238bf806f675958e27000000000000000000000000008000000000000000000000000000000804e4000000a0a64f000000000017000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95add4cf6397f8aceea0bffcc81e71b196f0509c0641c965eb0e036abb2837f66071ea443f24675ef0409143f616c5e24009e87c737d6a58b675dedb1507b1618cacc96f8e541c46cb239aa07592e65546f9a06ed6da52d4702c1d65d9a4de7863000000000000000000010000000000000000000000000000000000000004e4000000a0a64f00000000003f000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050afc03bbda16a4596e429369e3b4d341f89b361fb0a06f4da0d7737f4f766e826290c5119012384bb7a9404b1efa8a0310beecc203e85cc8f340e02b10be081522c3f89688503519a7cd28bf942731d5b4c90f0a28dbf19106a43e9f5498a4841fffffffffffffffbffffffffffffffffffffffffffffffffffffffffff07e4000000a0a64f000000000036000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b9590794a40c53169fa1e79c80d49f2842edf1befdf025812df90a2fc2d9fb9e97a4f53f30633cd9c6ae20d615f6132419314167949f258f90e95b302867716e1aceee4f80eec9d2762fc7e41251717635b5e5c3b40b71a639271bad80f6c89f2e8000000000000000000000000000000000000004000000000100000000004e4000000a0a64f000000000011000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95a470ad345faf967200cb92ab305e0f91ebb52ad47edb1050cf8b4e5224eb739b1437e9e9a9f3fe3d08388c0bd838307f1345a4170cad4b4a408f2ea37fcf94f1a87bb0f4b473fe47c18a66a6b9aceeec14a7375702556223f860b192e4adb78800000c00000000a000000000000000000000000000000000100000000002e4000000a0a64f000000000015000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a74484652505094ca5596a9036df656ce91e2157706c484957a996f48bf988687142505bd1651e3372c5517cb38660defcd6b082c7d8d003688d9b73520411de0640369855766b6271dadd1b20d79949004f8edd0a7d3d36a4450952bcdc11d93e0eb4d3941a9ffffffffffffffffffbfffffffffffeffdffffffffffffffffffffffff03e4000000a0a64f000000000013000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a74484652505084a9d3f569756a0283c53f5c47b9a49b868e7bea97ccc22311578e25b626f90071389f73aa49733c1971de614358886b009dad0818c845393c75d64d280d0efad41f7d3a9c191b1047328cd4aa661b548415ed63c23aa5e128a11ec2a0864d12ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff07e4000000a0a64f00000000001d000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a7448465250508d5c4c8ace02aebca2c8905f072edd1365d3e00b714d068de4ed355c391646e9badfba377e1edf40546ed4d5231520a800880a548fe9629de999f81032f854d273449c0d6306c17dc8b12073ebcd09c17e4e748f774a2e33b4a2e2209ec886dafffffffffffffffff7fffffffffbffbffffbffffdfffdfffffffdfffff03e4000000a0a64f00000000000c000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050b1bf16391c81ced969b9b633744815204ce1d7d5694a76997faaa9abc9d64754f692f0929fa55965ebd4883c89cf5468078e46a58ae6680d5b6692c2c4736c9045279427e991cd6122d9bedcda9a41fc8c71ed6e70cbfec65bc5b91232636e63fffffffffffffffffffffffff7ffffffff7fffffffffffffffffffffff03e4000000a0a64f000000000004000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95b99dd7152d7b3ecabd4d505c1287b4804fc31269f401abf1aa09c3af3800a954ee44a8f8a000a7c618d7b6a0fff6966f09648a102c29c7c0f7fc35e7a4dc7b9da945d22e51485dab1c618a59f14e91a644e0f2792570ec023f554450f2cc5b37000001000000000000000000000000000000000000000000020000000002e4000000a0a64f000000000025000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b9580b06d8ca3902b4c80e5ea1bb7a1e9f4bf20415060afbbe3542fa7abf332e8d702846b1053ee00624860323f2ca60e0e09a50fb4e5479caaaec05072b5cdd89b47c50f741a117d3089211c3c38f255d3ac93234259149497b4a1f167d4e0ab06000000000000000001000000000000000000000000100000000000000004e4000000a0a64f000000000028000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a7448465250508f6155e7e300ee555ca12ebc7b1b6d3b3ec9a6de6d4e49cf57367e8c596c495776a15b80086eed2c328e8e69a89c5257055d912b8e1243c1ac03d87ab91af643d8d594b5378dfe56fec6782f6546b2c3586987e8dbdd7de459cafb10ddbd3067fffffffffdfffffffbfdfffffffffffffffffffff7ffffdfffffffffff07e4000000a0a64f000000000035000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050ae18e8931a8e5661b49f5881f4b6da28f7fa268ebe0f8bb1cc09dc35de296b825d5c76b8cf350641c4c5b4bbd395297d199cda60410d8c6ecaf08c525d15c4e3beaccd3b9e496b0be5c9624bb771883ecbb34ef1ad819c25d3caff59b4b5baf6ffffffffffffffffffffffffffff7ffffdffffffffffffffffbfffffff07e4000000a0a64f00000000003b000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a7448465250509661ad630cd8f5a0d301fa54816c6861a587cd7c38ad3b1466f4fb75976824e805bee51a6eb2636a3a2660f74c5f6c1f1914d97b1fd5e253537224957377509447db017274ebc6487ec36106052e1693c01379608525ffa18322241b1a270297fffffffffffbffffffffffffffffffff7fffffffffffffffffffffffff03e4000000a0a64f000000000010000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050b3e094893413b3bc4352a277deea82e275348114d1f29c928a1db7a437bb4cbeb040422376e4226b306e4f9d6c45aed509c05dcc29947bcf8b2c6f57be05b258aa41c333c1320ca1ab8cb33ade449bcd7ed19529c5ddc7149b2a0386a22b1337fffffbffffffffffffeffffeffffffffffffffffffffffffffffffffff07e4000000a0a64f000000000030000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a74484652505097a7f82a9d282da2a73ac8812045acbc4136d076c3282dc65114866bd6e4f19b8bb888a99b60192b95ba97ddcd65015d028212c24466f09d8dc0f026186ad9dbe94a6970ddd7d91215e54c0827097349dfd8a502cf8cec678d6cb6ddf12581e9fffffffffffffffffffffffefffffffffffffffffff7ffffffffffffff07e4000000a0a64f00000000002c000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050b88aa81dcf7e23d08b350425eece22d588dfedc40c9f90702a9d375960b80a7e20dc67d46d7b7d14cd24c80540f0309216893f33dbb28c95a4622da9baf7a9cb23abdf31e3cf5159a6e0e2053113f194fa842e4f0753f524e7a3b6b91fd6627fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff07e4000000a0a64f000000000025000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a7448465250508413946477ff7360dc70e56f20a937f80e9d673be133c25bae1550f3d633bc63568cb900ca949c7e99609c7c37ab3cd0188a64f0a90ad86c1880f3d2a94ef03825abb4dad47925ce03033fb6906f14c2cc5398e3e8faab0b47b1df9cccfc88b0fffffffffffffffffeffffffffffffffffffffffffeffffffffffbffff07e4000000a0a64f000000000019000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b9593022ef6995ae413564bd7e21a570e4576f48b9ec7079bc621061f1e55aa5a1486bed3447b2f6a408ddfafb7229d8a930f28d0c0a872b699db6fff68cf9706ee91968d646929ccd2a93c2e8e4a7dbe72a14ab073f8b8eed64491cda007b4f202000000000001000000000000000000000000000000000000000080000002e4000000a0a64f000000000039000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a7448465250508fa8252f9a3842efba8d54def51e598bcb6a2d87956e41402ec025f65e64df44fbed80afb1bd6eb99c35160cd3518a3a065bc17aecc5ac0b680cf128985deda309f0207bd3fd30b7c28526496db30ff41cc17a8c376bcb53ae5505bb2adf53c5fffffffffffffffeffffffffffffffbfffeffffffffffffffeffffffff07e4000000a0a64f00000000001c000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050ae1d7c505d438e890697647e9623061aee9762fca0d24423f24b172e2316ac44e7ec91d888616958277b87541a46fb2014cbc25ced4e0be8082d85bb1cbe67f6b2d7b899f2dd62225fe6d695626def79421114c1ff01bb3b586c003e580a08d1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffb07e4000000a0a64f000000000024000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050909f2c2e1b3f1643feb47e0de16e6a40f4ee63d279d899b38914aafab3969c0cf72e6cff96f2a1025824e0dd088fa662049f1294e30864ae8a3219da1996a4e5736ff3736aee218991afaed4bb0f16172c89ef1bd3a14dd0a743a2f569b8790cffbfbffffffffffffffffffffffeffffffffffffffffffffffffffffff07e4000000a0a64f000000000029000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050b213c11c3ff69b84d620661f3702fe602ad715a372047778659d85d96df5d7a042fa030691745cae261dfd4bbdbaf19710c56c0bdc6efbdd56bf031d56984042a1fb7a2d11a67f8e5b1a7b4f062ab13568c0828bdeeb30846757d91cfd225b6dffffffffffffdfffffffffffffffffffffffffffffffffffffffffffff06e4000000a0a64f000000000033000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050a6e5e9adabebbffbd747c4828c9a4d800ada5814f69cfaf675411c8f3ce0a6ce5b1369b06e27d373405f3987e4f407470fad87ce3cc43f5fda3d9a1ae37d47f060c389569f6cc795a67b63a4d8bc3bca5a698726877d073ad2cb2d6f82c9417effffffffffffffffffffffffffffffffffffffffffffffffffffffffff03e4000000a0a64f00000000002f000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050b00f6371afa3fcff69e30225b778fae19424deceedb9ab488ced3e81be5ab3a95ae3afdab077bb19c34c8b5ffa48c0c115cd84b0265b8e924aeed58ef592fb411b02d4b53db3db377096ad8827029edd707c44360ad4c3717b53672238ab7813fffffffffffffffffffffffffffffffffffffffffffdffffffffffffff07e4000000a0a64f000000000039000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95a8311f17fd26db895a97b5f6615a4000ebd9db01433f49e8b361752f9fb09880d6ba36276071fd8313768595fb1243870c941754ba1efd5509e7acd683815c7b0e8fbcc4e621f15762f3aa3f589a34357cbdb4707a55769e4ff6d3592f46c16d000000000000000100000000000000000010000000000000010000000004e4000000a0a64f00000000003d000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050a684b915940cf205e29d243c5e91efd63698e0797727ab5c3a821645d60cab94df689331133fdad14a1ac63bb6e6c71e107e0bf963bf9ef097b185ac4e75d94e586835aaf3c0b5e0cabfdfb700f52300a15279bf26224baa00a119cb389021a8ffffffffffffffffffffffffffffffffffffffffffffffffdfffffffff07e4000000a0a64f00000000002b000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050939e76066b90a401176f65111822dd7721e902582c15d9921f19b0adfff884cad480f3f7408b06676a8e2fa53631448814ba91b46a5dc735121c044f68da4b8a3ccba5ab5eec028feb6fa1ff4a27a06eaf9729a2003d4c5934c3958a483ce431efffffffbfffffffffffffffffffeffffffffffffffffffff7fff7ffff07e4000000a0a64f00000000003a000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a7448465250508f4adab0d7d62008b34750d4294f59e2cb68a798159d9e7843aa32eccf8118b359a60a398e4b64c39502f4f0a285284e0b9a3230a0a997f2fc5b891957fe9056a8929135a15828afec0e8f65d23e8fdb9c58d140090ca6260009433ed893a07effffffffffffffffffffffffffffffffffffffffffffffffffffffffbf07e4000000a0a64f000000000027000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050845df1086264fba3e2e5cebeb8da3fd238cc986bf215ef9142a42c1dd940f23e6c8dcbdcfd99e4b767bd722299f24fd80339fb53c767f857514e667ab10725b17399389fcc25c35d674ffd042d12a4d05d254a67320a3e929ade8bf297be0ba2fffffffffffffffffdffffffffffffffffffffffffffefffffffffffff07e4000000a0a64f00000000000f000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a7448465250509018410244b5eb0aee7df1c9aee88db7a0f88e754ff638793121e3067c1b2a3c0100774d9272c7bfd441b604c61f34470a3e07ea454681bcba6fd02e8f65e4731125a9fc9e1cfdca25face5b23c1b6093c5d5e4584c240fe7c4bf037b4631915ffffffffdfffffffffffffffffffffffffffffffffffffffffffffffff07e4000000a0a64f00000000003f000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95ac482c3bff7dbbd03af8b0ab74b5c227f8ed475240bd4124f2f9b8df21c571c50d0b98828adef6d48cc3ada1e24c9c850c52b5c335945d18a49835b1411262103292f4bf1191f64da967b3f2d926a0f1d8c9f383fdd2d68f96ef93357987fa86000000000000000400000000000000000000000000000000000000000004e4000000a0a64f00000000001b000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a74484652505099368856c419207930720ef6e8d9fdc96455d7d524872cfd3ba467e0e6d9b293764e1195ff317a6831b51c8630691936013c0f32bd8492cf9888f9005851bdd68e0c49be73477857c1e135837e97bde62e94ec326ec1003435e576bf9daf02fbffffffffffffffffffffffffff7ffffffffffffffffffffffffffffff707e4000000a0a64f000000000002000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95a6599532681aff03d8da0eedbe65ac91353958231f8b9456c7dffa3ff5ac3698465a1c92441c74be06c8e395a4072c0a168a61d6a8185db4bec1280fc4f46357cae7eeecad55c6830c9bf658bf41a8ed8b751bc8db3c058bb276a9fa180c3185000000000000000000000000000000000000000000000020000000000004e4000000a0a64f00000000003200000000000000ba6dfce86e1ed5ac4afc1651c66497f4e31b5f471090232f00ba7d3a761ea468347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d020000000000ba6dfce86e1ed5ac4afc1651c66497f4e31b5f471090232f00ba7d3a761ea468aaa360f430a8da44ffa88d30c8b782bd902ee423154ff9c924e6f16a24728568ade677a1f87ab3d512304ceb017718a10e6271a49ec3d31e7fbb51a6e50140a08740de9e9e734c1a8c2960718b9e8f5a7c551e4061f2e293752fd3d7e285220d000200000000000000000000000000000000000000000000000000000004e4000000a0a64f000000000008000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050a68ae5d07525ddede46b508ad1eef1ed12dfdc385ecfd0ea1ca0fd0aad01f069c244d5f483e1ea1b02b24ba3ca3b54c910e6a3284116a81e3ab9e19cc5d7f4a39ac9aa373203de2338257d578074915af7c7509c169b7bb95d77539f630bcf68ff7fffffffffffffdffffffffffffffffffffffff7ffffffffffffffff03e4000000a0a64f00000000000b000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050ac2fe7471d289a3d38a59fa1b836b35eb87d9073a9e1e7fcdfb730db8284043ee969f9a9f003609b51701a2beb71fb950f5ec5c74be9efcf5c8b824ec3ebb66ebbad2719d75faa9abf59f11778889dda02841e5af57fe5cc56f227833dcecf84ffffffffffffffffffffdffffffffffffffffeff7fffffffffffffffff07e4000000a0a64f000000000030000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b958a7e43fb0587d37fd57be5bab9cf0a50e0fa6236ca0a58b7b2b01cda3d47639168710697d966c8055d7bca2e798f891f0d2e7c0b55ea3ee5a2ce1d01ca3ecc63f8fd121131f402fa3c2db65f96ac8a1650c92f0baa0c8d9e9e03f7b744274c70000000000000000000000001000000000000000000080000000000000004e4000000a0a64f000000000001000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050979b7b5572a7ad1d9259144a5ec6c34172fc2bf6b9f6a182036bb8fe51180fb35add42a5a669376032d1461ef346a78709002d6baf692192a71756f4d3f14c9e1fb4a4a3bcb4af795755af21369d97ee4e76c8b79611374cb3c00482bf74362bffffbfffffffffffffffffffffffffffffffffffffffffffdfffffffff07e4000000a0a64f000000000038000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b959641a3f77e612482737c009ddc06b79265f72a64c74a84e265d3f09c9d8c44f2516e235d279858246e2332d91529c76f149689a28c4b43960a790fd8a9c0fa07cf984591c6ae053becd2ec92f5bb86cc4c025d14fd5415a1f090ed01a55b5e92000000000000000000000000000000000000000000000000000004000004e4000000a0a64f00000000000a000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050940d2a76059d3cc0adbc2abf69219880c5091e2d588550f954dc07ad8c2cea3f494ba2a4334e88be5778f730b2312dfa096c2756eca50d07e16001872b88f6bcd8de78fd870b060e9a159745807b37ca34382ebdf98c54d1aa780e085f9bb43fffffffffffffffdffffffffffffffffffffffffffff7dfffffff7fffff07e4000000a0a64f000000000018000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a7448465250508572e438455a1155889c32956bb32896efe0e4fa9b2fb3774166288035e2bf1db574cc3d0a1429fc8c12a7c89d2a655b02819779c9ca45763389a8333bebfa0d8d42258df324844af7e1e193543f4473908cfdd4dc53ea7a9b2f602778aaacd7fffffffffeffffffffffffffffffffffffffffffffffffffffffffffff07e4000000a0a64f00000000000b000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b958877824f66a3e630d3995381f0de9b4a1025007c2f82d98295b7d22dbb452552cb8ed5e9252ec14e5c75a54f2aa744fc0eb92dcfb82eeabac5fda6f6b541bbff29082c7257aa1b8b8ac983a085f6b89657580d2ec56c1937283d22430ff323d2000000000000000000002000000000000000010000000000000000000004e4000000a0a64f00000000002f000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b958ebac609c304c9847d1a986746548ad7af3333c9716f0bc09f085f42026e6cb6cb515b4fbfa4410effc6f2f92a3ac9a215d3dda42a03a9846eb00aaa34cd8868dc66f77e15da87df735b9f54e0f683eb51f872fa873c7c6a80cd6b18d3cca1b6000000000000000000000000000000000000000000020000000000000004e4000000a0a64f000000000027000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b9593b00a6334211b5f1baa5c07b6086a90e701cab4fc9f4c21b12ab97292d91286e24a01c7bfdb061918ae5cee56de56bc09674500ab0c517611477dd5fcb815eb9c9ea9fc1f36160675bbe6e1d80618c6b1a812d0d6711bb4ad1a7336208291f8000000000000000000000000000000000000000000001000000000000004e4000000a0a64f000000000023000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050871bf1ae5be9c4ae727d01ff54d14afd4877d7c57ca33e2509675fba88ef79af56d55f8eb94b9bc9578d46262dba46a705f12a28fcce071a38f4cd2c0615707629a0603a560e7b9a48466bbe23f4964c5ad882e2982b639f8fcb09f846ce6752ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff07e4000000a0a64f000000000037000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050834b88302c23f7fc8f41f26c08283fbb698839cedfe7f4b4aba2e4dec16d1bd97e4df8c364b287b92f7d7efe39099458058b78286f4b24d0978b781b3a3bae833d94ac9185429dda9ba70c6e72e55d725aa168c2c1b7d2ca2e83d4963775ed5effffffffffffffffffffffffffffffffffffefffffffffffffffffffbf03e4000000a0a64f000000000032000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95847262c64b37e5013c580aaad847c14da4679d6eae31c3b6b1b4c1f082317706e9a3053aecebbe3619b8de3eeffc700707ed267f2c154f6b1a2ba4c17747f438e9f9b367f8e634361ce0439a443f0ba34ea078b00ee9398950c388c7161e0992000000000000000008000000000000000000000000000000000000000004e4000000a0a64f000000000004000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050a2600043331a9308cb6c7ad72f51c25bfd662823d6f1e3abdc44a9cd4b547068ed822555daa575c55de53786279773770a74adec794187c4e6e94d6870a8f8b2085cedfb0a8ae6c8dc808be72d9bf6a843a5ceabe5802c0d88dae2f153d120cafffffeffff7fbffffffffffffffffffffffffffffffffffffdffffffff03e4000000a0a64f000000000006000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95a3b0e1dee28e8a92c02bf1b43a524d997e11a1b40a4ff2f090928308b581f9753c66d21f7b84bd6e24c9ded8645407790e5a11cd2adfc3fd32cf9f8299a370782814044a74398d19adac073431b8b16bc0068127d228e16e3d273b3977389691000000000000000000000000000008000000000000000000000000000004e4000000a0a64f00000000002d000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b9586817c9c1445b97614fcf8df49f38471176dc903f4cc0bb6d77fd79f70eeb5824745172f723fe1191f8e1fed23613bb9137ebb9e53c026637929e137eba71e10af51769607c24a4a9491a98d8d621a822d18dd36260722858bf9ef1d734b6d4c000000000000000000000010000000000000000000000000000010000004e4000000a0a64f000000000006000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050adc5589942f05df34d32860774a5356eaddf18ebdd92c30e30576c944ea2235b3aae30fe24459fecf13433fcf0ff79030652e6a7f56b15b6ec88893ee5a4072329999843a08762e0b6fbed785c780e1b65f1d1d7fefd4f144d581b8b14235f4ffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffff07e4000000a0a64f00000000003b000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b9590828c0deccab5ea4ffa658a41e9ec7bc92fb4d1904d75c14bce3cb8a03aa08cc56f6ba65ce8ae7f819e0ebceba58b3904d28b40d9d97486387bf1e5adf4812010cd72aff188d2274e16e2b7130894d72300825d781baed2205c9a90c73f9415000000000004000000000000000000008000000000000000000000000002e4000000a0a64f00000000003c000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95b9283c8d1d5f826ef8994f2469e2de5be890cf2b6648916648ec92c1fb42dc2ae37203106781a3b8e0f4715ce8afb54612dcf98ba2f614874544b0395b79138f432fc53829649f090b1cbfb7a6392bbc00659bf4253b9e981d5d110d1f45f996000200000010000000000000000000208000000000000000000000000004e4000000a0a64f000000000002000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a7448465250508888211d73d260706921a5dec1367d92ba50f153e32aed7f974847ee298308a7d02f2d708c774a758ebbd8787e12e8d618601f5f2402452b399662317515dc86e9718f974484de661e6d64061a2c72a5c0624a421be939898980393a57163e0fffffffffffffffffdfffffffffffffffffffffffffffffdfffffffffff07e4000000a0a64f000000000005000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a7448465250508d8755ba11e06e502b4e3df4ef9c9bda1f6eb707c7c864fcbe559d2de51d983ccd770605dd89a45059efed838d79142d0f46b8c520ad5c19d841c0d0bbf96a00384e3d057e41526ab1ae10d80fb80fa0a34f1d48f8932b48fbebb5da9603a198fffffffbfffffffffffffffffffffffffffffffffffffffffffbffffff07e4000000a0a64f000000000008000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b9583c597823bcbfe3c7a60bbc9af421ba0e2183056284a88bc6e72e69f78a5711f129653cec5ef30b2c224d04bf3eccfa703ebacf97b99354c543f06f7189f07ae6b7b71bbc05514d53ad3e3438f86b87573adab5c40bbff8125419733fc5a13db000000000000000020000000000000000000000000000000000000000002e4000000a0a64f000000000001000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b958c80e9e80f7be9ff227d0e0a1f616e834d110caba0515123873172d5ac5d8cfbdb6966f709aee2452e32018cc0305d890e2a48eacc52b97e1eca29352d144b26f689ed7f779eab93e0c989afb3eefebb44cc9ef458b0177330616e69d3988986000000000000000000000000000000000000000000000000200000000004e4000000a0a64f000000000003000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b958918749d0a67f1824b3ae728bab026fff4cbaa44b14b1132e52cd9a10403e87ffc24e06c2d799be7435c1faee388157d1568fd438543250f580db75a27302c818ede1cf5d2229a54184a144e536d855e67c00274ab57d4eccf52045572e6b1e6000000000000000000000000000000000000000000000000002000000004e4000000a0a64f000000000034000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b958a43e0a71b2f4d27ccb8ebadf4d72bd4859008100b74d6b5b873b0623437fd299c06d769e17dbdafcd102dbde497cecb18fd3c7cd5b82b2bf31a8a633391ff2cbf68f33611585b417bdbe11b2ea91903ec9ecf5b67f4b18c7d0fe5ef61f19c45000000000000000000000400000004000000000000000000000000000004e4000000a0a64f000000000020000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050b7f04b645c48ba674c4ddcff138be61ccb36215e9d98f9726480fdfce56144438e64d2f509861a2ccb01e39f95db603e11b85923c1af01a9b9020cbc180ff1b0d0ff1185a9c1612bdc83f09efdb44a8dd703d92fe944a15d87e6470e14faea48fffff7fffffffffffffffffffffffbffffffffffffffffffffffffffff07e4000000a0a64f000000000011000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a7448465250508b1b4d69682f6697df4890e01ef9bd4acf3413f9afdea9731b43dadcf807e791094b9068f16e68ec719f2d401a9ef46513028894f122f1ef7d894d3156a56b161b5dcb4dbc92d19a7590a4aac2f981a31d7f9d2481463c59b9aa69eafc52d5b3fffff3ffffffff5fffffffffffffffffffffefffffffffffefffffffff03e4000000a0a64f00000000002e000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b958e1d240cc40dc66d285974b23b0dea4ddc2a8770ef9cad60ae08ff4590776de635dbfd7e648b008335c69f6b1fc369100bd0a9c789c6198ba481f8b1ea117df28e5d5d4f8cbfb64ba385eba51e16324bbe1e4e503630490d764a3a32ebe210c1000000000000000000000000800000000010000000000000000000000002e4000000a0a64f00000000001e000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a7448465250508f4baebdb2af01422e6941f241ae4b10a0a61f9d4b14231a5b39ea478908fb7ac2ba8b75a8678ab65a041581722b2f33069c5517da86df502a3d9881681188e52eadde50733191478a81c67938adfb3dfce5cd2d68f394a30dd5093764370633ffffffffffbfffffffffffffffffdfffffffffffffffffffffffffffff07e4000000a0a64f00000000003c000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a7448465250508eb8d8fe010b644ace5b8b7e5a644e72dce76b3936a37403c2cbdf8afeb017f65d3929fc8a17274467f164dd343a8fe71791906b688af4e2d1c73f99a8e048af35e03f79ffb447110953e632b114bec82311faa55ff3d6fd8662719e7eb4b8d0fffdffffffefffffffffffffffffffdf7fffffbfffffffffffffffffff07e4000000a0a64f000000000036000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050b236af8892d13c5bacc321d3d1945989ebc1314421d23de5a322dad76501eb0b674024a2ca637116234a7e53829c3d8119a726378e9debc55d8884ad3294127f92c0d3ae1ce622cd925a670687539098356c127c5cfae50c837528a1ae6423f8ffffffffffffffffffffffffffffffffffffffbfffffffffefffffffff07e4000000a0a64f00000000001700000000000000ba6dfce86e1ed5ac4afc1651c66497f4e31b5f471090232f00ba7d3a761ea468347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d020000000000ba6dfce86e1ed5ac4afc1651c66497f4e31b5f471090232f00ba7d3a761ea468a5f55804539553c435ef88091184a25ad34c5bfe952b1a8c0b7b18614cc4ee681010864e73677f8cf2fae4541cadfa4c0d3f778e103ed5a480a1246367db5798c7e3b29dc1c525016bd7642f75ec4dc7f00abee679498610ccf3fa571aa4a928000000000000040000000000000000000000000000000000000000000004e4000000a0a64f000000000009000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050b62b508c665fa3d2ec44e53ac6771b5780a1ba2389ff57e9e6bdc29493fa9619ff9fa438ea2b3e4c2484c939787fde531106642c8024caa808310d3c7a8cc60ef55f04e92f05d4aa5a14ae21cd90a62f23037ca2ac878161fd9a551ca348ad4cffffffffffffffffffffffffffffffffffffffffffffffffffffdfffff07e4000000a0a64f00000000000d000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95aa2b59355af9d1e9c7119226f0aaec11651059d4e3a04c4a2102981dce58bc4097ef3ea383b2746737d256881b3840e50fe55e1410e6f2e48aac534e72e2df6892a035d86a88c2005177d5ee759a2da51fb7fa9a65a4e3ecf303742d011cfd70000000000000000000000000000000000000000000000000000800000004e4000000a0a64f000000000031000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95aa4300a3d7c4c06501d1006f9a69a55b8fc3f9bddd0b122a9b068e1631d9e8872f4cdbc200852c5a64f6f5e01c77c59012639bb319727bae566a8ef876321ef9f09c5d3bad4c5422b53b3a3450ca8a9ce4c0bf24f171144cc4cfed67874a833b000000040000000008000000000000000000000000000000000000000004e4000000a0a64f000000000022000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050962ef72d96cefabb14bf9b11e9212eb6eac9b5eb5e342b6470f8258acee337b03e810900c18f94f8fd66524ccf528bb610f650da4b850048c79a1db8e9553e709b01eab5d09b1a2a22bb036ebacc33b8f7a0fbef3a2eadcbf2e587c8f28dbd97ffffffffffffffffffffffffffffffffffffffffffffffffff7fffffff03e4000000a0a64f000000000014000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050862ec5425b1252c76a15929ed6e6337318170900831ec9697cc3d16e5130694a79480a0a6133ff6ab74c1c1a98a7a91203a6125780c65e2324955942ce0880b3c5af99d1438cbbcf6bc998634792d5000d8a7a906e59fa9bdc836883dd21221cffffffffffffffffffffffffffbffffffffffffffeffffffffffffffff07e4000000a0a64f000000000038000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050afeac07b398936e4b0b682bca6830ded2e1bd5b84cf009f8ff3ea489c90b1381aac623fe0124894eef4717abab3ce7120a7933c3bc1c9ba9abe502cb9b04db7ff4917c039cd5534d957078ccc2bbc5dd3e5a6cc49a137ac036387a7202298a31fff7fffffffffffffffffffffffffffffffffffffffffffffffffbffff07e4000000a0a64f00000000001d000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95b4019b0c790a08cef9ae2690a5d76d1918ce5c306634f80912e91a99ad3d04faae42fa629c166036185047b500154c2910a0d33d9bda0183f2d065dd925444d242a5464fa663aba381fff358b11601faa6dbe8d9300add27790c17adf6a44e7f000000000000000000000000000000400004000020000000000000000002e4000000a0a64f000000000014000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95b7561860aeff0548786e7d68742744fc041e8ce49cfb9c2fef49d47dc7a91e386b8ed3280e7db654bb9147574af643f910934b0c74888fe37351517a06a71cbc274954bbf40c5c33a6d82e8969c5b3d63c965f8eda00b55069163962d257d13a000000000000000000000000004000000000000001000000000000000004e4000000a0a64f000000000019000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050a61472d1df1491a94ce1abaee1caee39f752013f309a6d29a3229ee4be459e70e980f9edaf41a9e40d2535f0fccd37dc18da2673cc44473476918bd640da871048ddf800408e835c6b88e1d03a1f159df57d9a94e185ec80f2dd774093347956fffffffffffefeffffffffff7fffffffffffffffffffffffffff7fffff03e40000009fa64f00000000001c00000000000000ba6dfce86e1ed5ac4afc1651c66497f4e31b5f471090232f00ba7d3a761ea468337d0200000000003b8a1ffd36f06dc7f79f2ee8530899210d04fccd513d987a17d8f29c7385d039347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0ad2d1d07e13ca622798a27b2731ca0da1b42b4089e62e42f163260e24b9818b4d1f6d3bc8a415012749dfd0388078f2902145a97c365b8641d0689736c5bba0eb443117eb14e9d437e798dc06ca5dcab5bf663792fe66289f6a6227493a635ee000000000000000000000000000200000000000000000000000000000004e40000009fa64f00000000002400000000000000ba6dfce86e1ed5ac4afc1651c66497f4e31b5f471090232f00ba7d3a761ea468337d0200000000003b8a1ffd36f06dc7f79f2ee8530899210d04fccd513d987a17d8f29c7385d039347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0a78825fa9f9d9ec1c6b5d0d8143fd67374f35f4436698fa787ea6301419b744ffaa72fe5a3ae43e756e3d599d3c5547800b6d1838d0111274dd992f07ddf46cc371dc96cf3c2cbbfeb10b9faaf78d830b9d1d559c02f54e3fb1b1ff2b720559c000000000080000000000000000000000000200000000000000000000004e40000009fa64f00000000000200000000000000ba6dfce86e1ed5ac4afc1651c66497f4e31b5f471090232f00ba7d3a761ea468337d0200000000003b8a1ffd36f06dc7f79f2ee8530899210d04fccd513d987a17d8f29c7385d039347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0b01444e342bb37a449ea7b8042bd31163f5a8cbdecab2c9be06cdee288b555c192b1274c16f18f6f236ac00d90d737d3151175b1f8b32c4768b254cddbc82998e88abaccf1706779f2d24dee3b2ad7a05dfdeaf03a9e4b794ba04ea4d8d51c7a000000000000000000000000000000000204000000000000000000000004e40000009fa64f00000000003700000000000000ba6dfce86e1ed5ac4afc1651c66497f4e31b5f471090232f00ba7d3a761ea468337d0200000000003b8a1ffd36f06dc7f79f2ee8530899210d04fccd513d987a17d8f29c7385d039347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0ac00218c05636e3ac74f47fe83e37462a633dafe30a8acd222dc31b7370572b792cf6e0bd5d4178753ee38ef82ce1a890de18c1b290db6285b4827e381d43afbf35cd041b453d60c933366d54f8ccdeb2ad436892cbc88675c2cb0f607e84cd6000000000000020000000000000000008000000000000000000000000002e40000009fa64f00000000000000000000000000ba6dfce86e1ed5ac4afc1651c66497f4e31b5f471090232f00ba7d3a761ea468337d0200000000003b8a1ffd36f06dc7f79f2ee8530899210d04fccd513d987a17d8f29c7385d039347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0b15df1b0c7db9d568e39dfaa5ca6cc2e373b5a9310fae735334b7f1257cb37372486e45ca23999fee5f1d6158f8a58b2176ecf0fbfc5d502bfb75ed8b91dd9212f01c09df99593c1872941c4306c1c0972ee7f93730e5b4fa21d4e2b9ddd2304000000000000000000000100000000000000000000000000000000000002e40000009fa64f000000000038000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95337d0200000000003b8a1ffd36f06dc7f79f2ee8530899210d04fccd513d987a17d8f29c7385d039347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0a2a92dfe7471d555b792260b90840c5f4d634821831681a8b9130e4a12d7633c9a719d51be13a029f35271b3838cc3c009018bcf00c10320e684deec39c2a100aa08ef13fa6849473918c686ff241d7cfe8cbab655b5e9f640a1cd5c7bd4e492000400000000000000000000000000000000000000000000000000000004e40000009fa64f000000000023000000000000009079269211ccc5ec2425ee0f13f6ef5348fd84c4d2edc41ea4b4f3a2ecb23d10337d0200000000003b8a1ffd36f06dc7f79f2ee8530899210d04fccd513d987a17d8f29c7385d039347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0976385c1579867feb28929fd6271daa860638548a72b5cda8ab486c2fa40b9030413860306d91471b1bb9cf31f4d57d107466295d1904418bd0f53fb4ce18d43a7fd5fa87b9378ebaaf448d2a4d6857302abfe9e83df40a141180322ae711e9c000000000000000000000000000800000000000000000000000000000004e40000009fa64f00000000000d00000000000000ba6dfce86e1ed5ac4afc1651c66497f4e31b5f471090232f00ba7d3a761ea468337d0200000000003b8a1ffd36f06dc7f79f2ee8530899210d04fccd513d987a17d8f29c7385d039347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0b65a077a725f76b5a763f889573455515b7c0dc4bb079a4a86952029882c704d8d29ab2246412c46547ce15e0b581f5e0f130504d711c40f9a74439baf019d2ce37d53f8f9263814d42ae30e8541b1c7afc15afcacf984eeb9a8dba5f60009c4402000000000000800000000000000000000100000000000000000000002e40000009fa64f000000000035000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95337d0200000000003b8a1ffd36f06dc7f79f2ee8530899210d04fccd513d987a17d8f29c7385d039347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd095368892968815215f0923f29b2d56f65783693b682145554a877fa51594603e1b832f7402843aa1fca921860aee73831993d970bf64402673ad1a15440ae953adb4002395d63095e8e39d413a64380ec7d191b149daa69b44394120200fc431000000200000000000000000000000000000000000000000000000000004e40000009fa64f00000000000500000000000000ba6dfce86e1ed5ac4afc1651c66497f4e31b5f471090232f00ba7d3a761ea468337d0200000000003b8a1ffd36f06dc7f79f2ee8530899210d04fccd513d987a17d8f29c7385d039347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0b25d443a8c0074a028397d8e7117a130f229bdc16902d29e0b79147c51dc74e2762796bcb2010a803e5eb62d23cc6f720365735f23ff1e0c4b5959a9150991b0c1f5efe19d85ac41d14098a4417d5a0561ce13842b5566066941cbbc7b9c7250000000000000000000000000000000000000000200000000000000000002bf8b0da0e13574fe3f57498203f86a34b0ade70bcf13856c6975e86b416b7880dafea492d9c6733ae3d56b7ed1adb60692c98bc549d61fcaee7a2c6d9d0c3f3e58cb578c6ae97a08fe59a62a4b7c32688c753faa204cdcf91b8f6c0413e49094d9bda7351e8b20768fe5dc29a17bb60cdd966258ba384f4ffde04d7425e86eb8dd14b39ac9f6631005c4277b5399f3080f851317cdef5ce2cf73f0283395a71b537945156a2846a45b2d9716369b8c8d40742fa92a626cd9a21a746d48a524eb213852eff7c97e22d440caeda621adb507dffef7aacfb734f2b9c9fad5b58d3e92648faf2915a955b5acbc62a3b4c1f85feb9f2e7620ee65f7346259364db7592d98ba62909f39a6f1ab60d9d10de84e23c3701c76275cf3c9316656cb0449c6aa99c1bc240be3542d3d47fdf3e85039e311409d9349dcea46f38b2047ec7cff119ad2f33575db8a7d6c93193b9eb6eef26326eb29fdf90311c8f9652f2c4d7b6c96d774a888eccd1c0a1abf8b99e83535588cede719b68c59b9501ee8952f779ce282ba52406984e13d246115f4278484520e9108f7f4000000000080c3c90100000000cd82c90100000000e3ff816300000000fc010000220387ae02000000000000000000000000000000000000000000000000000000a9d8a06f036c9d02cf8d1ccd7a6d2e3672c74b400122980bde94b4f5874821e41b020000496c6c756d696e61746520446d6f63726174697a65204473747269627574650c0400004b06000089080000c70a0000e60c0000260f000066110000a4130000e415000022180000611a0000961c0000d41e00000921000049230000b9230000f7250000362800006b2a0000a02c0000d52e00000a3100003f33000074350000a9370000de3900001b3c00005a3e00009a400000d8420000164500005647000094490000d24b0000124e0000495000006952000087540000ee57000085590000815c0000c05e0000f56000003363000071650000b1670000e4680000036b0000216d0000576f00005571000075730000b5750000d377000045780000647a0000b07b0000217c0000207e0000578000006c82000098850000b8870000cf880000848a0000f68a0000a18b0000e08d00001f900000d5900000f3920000109500004e970000869a0000bc9c0000689d00009f9f0000dea100001ba4000058a6000096a8000005a9000043ab000081ad0000beaf0000fbb1000038b4000075b60000b4b80000f1ba000064bb0000a2bd00009fbf00001dc200001ac4000058c6000095c80000b2ca0000eecc00002dcf00004ad1000088d30000fcd3000071d40000b0d60000edd800002adb000067dd000064df0000a1e10000dfe300001ee600005be80000cfe800000ceb00004bed0000c8ef000006f2000045f4000082f60000c1f800003ffb00007efd0000fcff00003b0201005a04010097060100b4080100d20a0100100d01008e0f0100cb110100081401004716010084180100c11a0100bf1c0100fe1e01003b21010078230100952501009427010007280100452a0100842c0100c12e01003f3101007d330100ba35010037380100343a0100713c0100af3e0100ec4001000b430100484501008647010083490100f6490100334c0100a64c0100a34e0100e05001001e5301005b5501007a57010097590100965b0100d35d0100f05f01002d6201006c640100aa660100e7680100056b0100436d0100626f010080710100bf730100fc75010039780100b67a0100f37c0100327f01006f8101006c830100aa850100e7870100048a0100b88a0100f58c0100348f010071910100b0930100ef9501002e9801006b9a0100a89c0100e79e010004a1010077a10100f7a3010034a6010031a801006eaa01008bac0100caae010007b1010044b3010061b501009eb70100dcb9010019bc010056be010073c00100b0c20100eec401002bc70100c0c701003dca01007acc010099ce010016d1010054d3010091d501008fd701008cd9010001da010040dc01007dde0100bbe001002ee101006ce3010069e50100a8e7010045e9010083eb0100c1ed0100deef010051f001008ef2010001f3010040f501007ef70100bbf90100f9fb010037fe0100b4000200f2020200300502006d0702006a090200a90b0200e60d02004310020059110200ce11020081120200f612020002f9023b0181c78545d964b8008545d964b8008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b7ada863bdd3e62fa72dd5ddf8ee40baa53bce4a43bd7505061dc979879ccce079c9a790faa3e44001937b64c4884560a28b4b46d1881b661a0fdc94c23bc00d8650e243a3c7b0648d96d7a658e388b6563e75d6dfddd7d50464a94ca8a4386a2e89ffe0713dea32d760fb4a5b5a7a168d815ab1f7bdb96228dc91cbf03501d08f64ad079f9b914d3b18d1ccbf9d36bc01b0aa22b1fc63b73832d5c38bba2acd65549830ec99dcc2b6df63619d785251c172ebed1665f42fef02ebf9f4a7b13d926f0f301aede479d9f73194da3e2012a164881fb2915f20b57a4dd7e29f06928367afe706187da4fe6bf16d387642c381960f3653635af3e01da5990a7715edafc56676746ed65e7e0cb2e85384b58a35f638c6fefa696d8c6ee519b7fcaaa602c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a005b8fdeb0a45bac5ed0e97479bf31a2f65f32f00be64873f1ad81334935322efa0532d99fb665e41ee33174166ff4eb014a07b644b4ebbd019a13acfe885aee77802f9023a011e85430e2340008545d964b8008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bfbe7927bf19ef7ecc2ace97306ed1df2cdf384af21e6f40b698ebed41fbe510ee0ff1fd72a9762056337353d4bbd942552debc9c8521657a3376741400909106ec6f6441183ab8c4e16606cf71724f5d7f5c71ba2ea062970a049baff8062e4917dee97fd71544b579d0e99e75a8b69a821f0c85f31f1fe9f53b917a39204b4029ad17b746a0b4b16be231b3a092e26643753bab08a40a56f9604f670ca9b3bffbc12253fa56745c0a5f7e73beaf53bf238359d2c52dc51d299cec72f9d40a9526f0f301aede479d9f73194da3e2012a164881fb2915f20b57a4dd7e29f06928367afe706187da4fe6bf16d387642c381960f3653635af3e01da5990a7715edafc56676746ed65e7e0cb2e85384b58a35f638c6fefa696d8c6ee519b7fcaaa602c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a02d1c91069624054ea7df697cbfc8d14913db3461b04e8e9c3e41de233e48a7bca06f4cdc5b2b7d99c2e92df679efe3742640ebab7b8dc49824678061861b7fc84c02f9023a010785363fe1da0085363fe1da008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b6ff1573e21ad3467bd1f27362f68e6422babd4a590b42701b18b11d620cce84bc562eb0ed149621683b98fbf43b7acddfaa6ccfb08561f0d87366ee9deff2db080a6ffb522c66617d386c26196f40502fa1bf8ce24610ac8782984830c7ebdabaa88ab3d24f5b359e6a658d76c9d657e35b81cf9449c5c8991555d169b106a23c53f3986960c7f7938ec0bf7de012fc0420cb69a2eb1f6c17481638874e58b1bfbc12253fa56745c0a5f7e73beaf53bf238359d2c52dc51d299cec72f9d40a9526f0f301aede479d9f73194da3e2012a164881fb2915f20b57a4dd7e29f06928367afe706187da4fe6bf16d387642c381960f3653635af3e01da5990a7715edafc56676746ed65e7e0cb2e85384b58a35f638c6fefa696d8c6ee519b7fcaaa602c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0e06c4509494b26d3a160a8b7a06d42b78c72b883594ff3c58a8c6a778f265eb0a046f86be246cf8621815dd11e5f7efb828cace32f52b3cbadb6951517edac704002f9021b0181e68533b03b2c008533b03b2c008304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000a2aca32f0103edecc196249ac8af079c8d169c2fc57e414302e045bf7fb0e8cc665370e3a2f2ccd5f3a0f3997e69b11f83c8478e55cb1c8d3f95c45a3d637ffa19d0265eb06769abbd208d33de7824b7cdfa8bcb79f5177a48c89ade65675ecee4c4ba7919a4b80aa96144769154f17280574a628b6dab84092ca0dd4bef852cdc228998f83c3b0943263f8ae8c204a222eadf53e2e3e2cedbce275343bca06ada448110f2091d7638e548db2fb79d2a7a3856581d873bbacda0c0517f9390bb1edbf73ba52d75dafc0dba73303b8cc428ca1329021edc3675720c12464219f17ffaed7b71e17931c50b3e99ec666f5a3bc118c101dc25a2118045b917db2f8ef46007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c080a09ee5c64a0d41c1074cac3b9451858fa1624a14b4d45e4f94ff008430096a7493a060e9e22a701464be9c76bb6e5a9f9bc9cd103f1173bd36d4f85e600995216d0102f9023c0182047b8530e4f9b40085975704e4008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000baedbbb5e3e1ec3668e12f7298be3488aa603c69fd0b3aa9d4d4263983456327378d63743735425a0732c41a76734bd22d154be4f6bc1d917ea4ba5eff83d690c12f65eecf6cab5396bd75fa085e4d89a90fdfba24dff38753897d97bb79b795ac0c7dc6e84432959d8e88803edc5529acc63827aa479a7b01237ae1fc8084425f64ad079f9b914d3b18d1ccbf9d36bc01b0aa22b1fc63b73832d5c38bba2acd65549830ec99dcc2b6df63619d785251c172ebed1665f42fef02ebf9f4a7b13d926f0f301aede479d9f73194da3e2012a164881fb2915f20b57a4dd7e29f06928367afe706187da4fe6bf16d387642c381960f3653635af3e01da5990a7715edafc56676746ed65e7e0cb2e85384b58a35f638c6fefa696d8c6ee519b7fcaaa602c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0a5a1d6a860d997bfde9ed4cd3df6d76b9846556c7d6e3dfe6be1b017bcd5c69aa065bab9e06536a004795f263e64a50c4d4045f9ce723a8e99729baf88148f977d02f9023c0182028c852ecc889a00853a70c40e008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b97bd938fab694f8b4e7171c8cb159d7188e6df42a3ead0434d486c8baedafb81bf2329259b92531d207a1e635195497274af3a3fe412492b6b6a875155ca87429b126a2500b457e371942565bac84f20ec3930bb5f39892c66eb7dbe6b72ca1170cf70f58796ea5b9a880640d898874fdad0dadb6402f8086ed3c671fcef825aa24241628467a8526d652b04a046db8e7a86bb28fcfe2b13054ecf29a2cf302f4a357aa0e28aed6f9b0ead588f38d4a27d852dbb4b90ccbf35d7d49dc3bfed3c7d510e7bd2727bec626207f433b8ee3cb02172d7e3d463087da63edb1aa1e51173bb78fd28784e7e398a646408ffcbe410c7c3aa32abe694422aa038737ab8e1960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a0e75fc55033bea663e4393052bfee398612fe9ae4c3d5a7ea462964b098616e71a0178610324407069afa0840b6133516423bb7fbeee9f663b7703e0e54b33e7de702f9023a0124852e90edd000852e90edd0008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b5e444f6781da644a6170beb65b6cbe1e0cf95d25dbdb7b9b09d13933e383977604b5ece411789638b9b6f00604c2b89c3814d2e8cd5a79f36ac57f3bbc45bc2b1b89aa1737388b6f6f2be9a8a2ef9a59f919ffb39681ac95d9723fbf343e463e386a828a1c3c46306e25eb68b1e9af5159e9d9a98a1ecceaa9782b0247d4ed5ca9fc4c9d4861258f42a4bedb4d17e6a531f66b6a3818b42c08d1a89d1b58222002dc47c65737484bd364c502208fde3574be9e39776789488a862806ea233907b7db17258af1aa1618665bc04645d5b0c2a5bc6c16c7285a4c645fc0aa5dd222e09090a4240cef86f6c4a7c1c98ca76ce47f9feec130fb3dae8c9442a3806c505160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a05c59bf2ddefe2fe992df40782c9f10d884c2539be8225f48406b3549c083f384a03d4bd20db6f4f64d86eda7aaa386d40b970db4e06da331352582ce766a17380302f9023c01820202852bc5ac5800854d8858c2008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bc45abc0b4e641ed0fb2798970e3ed8674642538adf5faee6f1f522761974cc278f3c6e8f6f1cd8cb0c13b67c961ba501b3ecc6fe6206ea1ddfa13581f7543650fb68cd63979a654ff6ac4eb4e711b5a56d6174888279c1c76ea66a60fd47e6ea56a4522b0b271ed881d57ecff1485715e33b013c664476eea266dacfc35aa5b976ae7090546b9b900712031e17f61e88b2e890601fca5cf23e4f2cca9a8bff62a4a8f898ead64765bb8edb3ec5b20f1b11b97dda9335cffd26f8bdcb63b46bb50a26c2c2ea9612e28d0aa9296f80336adcd076167b3fc1705448942052a9852eac5912b920cfe151d881ecdfbd81e708a6fc74fa4215f00e3511a5ac0f229adafc56676746ed65e7e0cb2e85384b58a35f638c6fefa696d8c6ee519b7fcaaa602c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0d62caa5ab1919e633b9db7885b52bda32c0359f81669f24895087fcae7ec2119a05a77188895c5194db8354fd06d0f759912cf991985920bd43a4456eafdb3a23102f9023a0122851ca35f0e00851ca35f0e0083061a8094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bb241325ef06772e471b8abfe5a46e7cd632b6a0a7c33971b181d33c7293a51b4db89038ed2e4be4ff0a7bd5b26a8d6b9442e2f0cea03340a59ab725fda6a0002887ff3b26b70081e49de2b25e88b46087ecc29920eca9d892993071629981a113c0305a9a15f0a9def183e235512e7809d095ba5b9ba9f206885ca77a34e9a139c145f1a961634e373c2ac40dd183321dd17dbcb7435a0f7ba5c37f58120731c368fce61468f4a0753b448f8ce82ddcdf2fd716375a1fb922d174d111abd5fc40f91a6423dba6a49f6944b28d8c41eb2a0acc874bd9cf07636081f448771b2f66ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a0231c36930ea393e43efab0005a68e6d2120f73d9803aa18aa0dc33d058ea9362a04e6cfa85c0e82b61582871e01f7723c323dcff7e9b5a1f746636350ad7604cac02f9023b0181c0851a13b86000851a13b860008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b0fd6e7377f8b3df6becf6ca02309488dbb329a570e5bbcf4f1e226588d2bb0f4cc9fe9f96910c267cc1ecdc02a2964570c66ff0eb25ae87f31a45dfc2760b04189a501e10f41998613944814f1240003f513ac41249daf812dc19c5726bc637d3725ffdc3de47ceefe163f13df54cfa7b398c9171b53598ebf0596009bfb0cfceed0bdf6114248d7bb901fb3d726a53ea3ed244bf39c5029b03d6828cc96f37ccba6d2ef29cccca4fa453062395770480d56588111f94b9615f951fec3a4c57be1c095839abad83fbb732382ce6110e4767327b558f173562c36e0250ac9f3e15d2432a83ea939195e27b727120240cc6fa83ed6cf36a74616a2e8b2e72d5f4736eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a04dc20e678667e8ae41df71ad27e7528f2b9efe802b95c2719c1777d60f12b4d4a0738fd12f4f484a1deb7e4b3a44f58563ae7b2d38fcd04022993f7e02e302b45af902326e85178411b2008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bc8150a14b21d624f4923bf8170388b57e122db7fa8cac145381cb3f7a5705a543f428acb1ea72ec37418e32016759e0a2c877a4df6369ed9cf096f55e064b0ccb8ea5a39b4b2625778970f411c384de0c2a9c2f7a9d7b829b2823bb140cc0d723ce6d75bdc1a4523d71af2fcf4f4fd5247cf3f5db3bee2b52e4852739aaf94c80c7c4e431d837e63c6d425b93e9d17e49ec9524d5772718c2440a49047d8b5a959534ee891dc7b31c689f26da2d42c9d5169363891bad63efa35390a39433d4a1e43257fca161d36bc6af6f7c08e0a55f2644a631163b9c16f0d890de7f223cb367afe706187da4fe6bf16d387642c381960f3653635af3e01da5990a7715edafc56676746ed65e7e0cb2e85384b58a35f638c6fefa696d8c6ee519b7fcaaa602c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ec26a0e703e54c50639e6873e66d6754370d943e0ea05c4c44ae9dee929b4ad2f48bdea033d3c22f2706d776c0266a0b6775cc70301bd3f37ab948516838bb58a6e625d202f9023a015385174876e80085174876e8008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b70e7ce9f0e228f6dd69284870852c38805c822f3be3fbb741fc3c28b04b594e28e36ca6f30237257d8f944ff0b0afa7202334f57cf154c0bbb126176623a47042669c73cc0792fa6ad5e7778485c9b746c7a62c21a018425e02ffe9f75c017b2af135b77dee36d2d1080cc1fbb2750151cb9c68c226f7a142efbd04241071b55a443a479748450adaee230a98fae2a7f7e83ae41978a4a06a7e255ba23e5c90663e97180e1ab3461725b593d992b80fe8cdbc1939562c814a2ca5d174874eb00286b4cf4b050097d14205264d5de8efa790b96fbc3b6ba991b67d2becd1cb8d3874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a0b91a9496db45457f1086dcde624ca1dc1feab1184df31c8e8514563abae80e2aa055737b76836f5f5ae81acc67d029373e87e9efc8b5f15054e9339dcd51fe320ff902327285174876e80083084e4894998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b7408df52cd9413b226445b90f49ccf05016c5571025d3d4cafc32dbe1bfdaf2b3e5847e739d3da6a6ffc7c373ed672b312d1222dff9221ff99a8fca51045ad04cde5d7cf8d0f97a545193629fff084cff06a29796df3366067e7f587a5d88920731f92acec4e3eaf71375d589208e38f700b752a8295ff4a6c47f6a8120d0f0ed57d1c816b23d9e33e8a635ab9df8a95f1c394a9e44b4dad0095db5096d1639b2ac86ebd96f96f7eab60daea44eba5a2a551436123ec6af1858d6c9c9e421d98b7db17258af1aa1618665bc04645d5b0c2a5bc6c16c7285a4c645fc0aa5dd222e09090a4240cef86f6c4a7c1c98ca76ce47f9feec130fb3dae8c9442a3806c505160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ec25a07e1ef14a9f56969ed818b8f80a5fa9cc18f9ac1a6a80d0682f7b2bf268baca18a04c9d85f30a2f59740a3640df0d9536190469c3f06fdeaff81be18d044162f21a02f9023c0182014485174876e80085174876e8008304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bce03ecb0c99e7cf1997e620edc307ccd9a523c9d02ae27107d6e6c63a89b21bc08e85c5f4a1f99f05a6cedbcd0e52acf2e55cffe432c02200d2c26b6bccec1cee52180099a30a501cfe898da153068e42ea4c76d92c1cbee8dfa699c20f1a6db0db86768464f964263b4d04fdcb22dc7fa92617721a737a16f279f245402f172ebf7682281fdde94de5d590f2a34b1a7e7b5c33e28eb1990fdd48d066f3818d1276ba5cfa6cacebec4c356545aabbfebd9579bede1231b857e2baa7c83e7f22cc71f093cbc8098834ba48fe552a93d701ec4d36b6a097a496858db8cdcd208379ac0c400cb6837182b745f26fac1e87ff6eded4c92365a9807bb2150ecbc7121960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a03f7a48121bf117170e1993a4c64d308cb099d7196b1d3783f5f7844b4cc052e9a055e9f9fbe0d434d1a9ed64064cf1e742dbd40f061f890c10a5b3fd5dbdbd987bf86e82048485174876e8008252089456d8c99fd3ef0405a02f95191573778e10420b158872d03b8962fa1025801ba082cfbc2893da534174e4e4716c1b495a7a1d327415deef7f6c53dca1c7a57cc0a03113b13ad036147f3ebc2fb499b60a2c35c3c2d6074f93170344925c3bcb84bb02f9023a011785174876e80085174876e8008304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b442a8423291fb8880d8266aab50d0a5fbd31d2b1aa3be4e965dc92c1e7bd2126945fe5c7fd722f596b09dde8367bba29f9956716e0d6a0179f918051a09319b7fc84c1e044f04daf8758a708abda0cebffaa9cef1a4ffd990a9db30e8bfde31e0e3f9ff8fe75329deb87f104175beb3ed4b66bc012c401d52bb97b16679f9872b5519ca5ce8fdb54347e86127447cd1be7aed6e72f53e763ea703a78c9fa1df6ad846c4b85e9b0b88abfec7daf9b81d6d43d2fddd1fb323e1d8ab86d248a15a70a26c2c2ea9612e28d0aa9296f80336adcd076167b3fc1705448942052a9852eac5912b920cfe151d881ecdfbd81e708a6fc74fa4215f00e3511a5ac0f229adafc56676746ed65e7e0cb2e85384b58a35f638c6fefa696d8c6ee519b7fcaaa602c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a09f6406bce0ff816f3734d86c08fac482176a9830f931a913a2f5b88d50f4bc47a0680824be611207d186fa280dca9437b5e7fc45c14f3671db7e23b32ac4c0268602f9023b0181e585174876e80085174876e8008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b1be40e85049ce6eeaa87dc62cb979a76d483e08b2b800bdec008f244f7757b32bb9ba9978239582f12105fe667e8dc777e2ebb48f6bf93fe7dca76e8dd3a55e167e03b27d10aa470988c22cd968e1bd4a9fcad75afb7cc48d589be0949b2b3b7116a56e0a9b1719b7de2653bcde0fa2f2b9a29368b85d3c8a4cb76b1f067cc2ae638493b504c4955b832bc4cd7aa2f05208f6a8480eddb8dad4d67b6bced37a8ad846c4b85e9b0b88abfec7daf9b81d6d43d2fddd1fb323e1d8ab86d248a15a70a26c2c2ea9612e28d0aa9296f80336adcd076167b3fc1705448942052a9852eac5912b920cfe151d881ecdfbd81e708a6fc74fa4215f00e3511a5ac0f229adafc56676746ed65e7e0cb2e85384b58a35f638c6fefa696d8c6ee519b7fcaaa602c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a07311513ab68655f76bf4e47db59c6acadae2b891e0dff05ddaf38c5ff6181412a04284da41cce0b7a93deff5729f8cb63d6117067b21a65bae853213deb301a811f902323185174876e80083084ef894998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000be6de229f32267f5040e54c266fc3eaa65b70e7bef1358147ec1c4d39b0a3150b4d801216662b5412357c2b6dcf8132de69ba5a1390db4432d91010d508980f1b3faace2870383cc411a32d81d273b70b1234741e5d34ccb587aa76a3f5ca0996be4d8eb489952ada4af205161cdc6be7994f2a8d5b598428e55f356485482cdbde7773b4b8f3d83ccef36bf1845e47781d828cd6d607e5b5b290c0e0947c4644eae5aca00e946d9dca1871117bf328bd20f5f7bc1f5a7e9e3e497e42d3ace8080f91a6423dba6a49f6944b28d8c41eb2a0acc874bd9cf07636081f448771b2f66ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ec26a05024dcab343e5385d02994c4f869f27962b5516d068da17c1ceeac7216884cbda02594c6bef248ea3a5f63890c52c5bb52911bae6f31d4996fd9fba1983ff6509cf9023221851176592e008302957894998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000be3e84dbdf82bd1725462380067ae4b4a5b1e2a4da937f5e0be85d39e6ce3ceaaa3b785082f1158d9ff4cd75b69aa8596052dc62f1ff25a11c69d90120f5499820f30eefe6fed58cf9ccfac0a88d7496af93edf3ba56aa775cafd5c5b961e58e18a5eada59b99aa155ddd1664fcb4bd275afe83d92a5d278298b81c9e7bf5979d361792b864ec7193e05e2902dbb5c1a1dc97b11e6ba2425cd85fc70bfef0ed26340bd88da4d4ad7f678cdfacab3a163c4495be773b266761f072b5775a65c45e6cb6b274fbc933d5161d201b57d1968b3e548233d94e0918b29e3246db24af10874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ec26a0bb8d2dda4f0e3be952a1e0e5a0f618ff4e28c18b7bc51f78cbb28f859fdd7d81a03ed0601e3df1a63af7809a6dcee18ff48545fdc9ebad0e7a59632885b33e84eaf902321e851176592e008302957b94998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b1e91b3db5a2d320e40e7c1ae9babf238a71f67c4045e0f054b0f7316b862524158f35eb988ee5dd493f271bba36795a7f949f378449e339e8041b73b2b09b9bc356173b6a8f7b32c0bb689ecbddbaf35f49219267426a92f825b963f578624cb8a5eada59b99aa155ddd1664fcb4bd275afe83d92a5d278298b81c9e7bf5979d361792b864ec7193e05e2902dbb5c1a1dc97b11e6ba2425cd85fc70bfef0ed26340bd88da4d4ad7f678cdfacab3a163c4495be773b266761f072b5775a65c45e6cb6b274fbc933d5161d201b57d1968b3e548233d94e0918b29e3246db24af10874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ec25a08443fdec0a50c7d45503c183e70e5d9c03f570678ccaa484661f75b9af47a998a026dad5e34a3d0178dd343ed866e0851772c122d3453d88dc925854ff94e99ac5f9023225851176592e008302959394998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b816d79c386a9b7094d75866d7e30603afdc2e56d9fa01c9c51fb93e25ffac99f3edba76b7e8d78e371a8e11c61dd0e1f2d4a13ce175af5fb334ffa2e07dbfef00f30eefe6fed58cf9ccfac0a88d7496af93edf3ba56aa775cafd5c5b961e58e18a5eada59b99aa155ddd1664fcb4bd275afe83d92a5d278298b81c9e7bf5979d361792b864ec7193e05e2902dbb5c1a1dc97b11e6ba2425cd85fc70bfef0ed26340bd88da4d4ad7f678cdfacab3a163c4495be773b266761f072b5775a65c45e6cb6b274fbc933d5161d201b57d1968b3e548233d94e0918b29e3246db24af10874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ec26a08dcf3cbd4002a90fa556942d45cbd34cb3db8d8c1a820e5cfb4427b64500aee4a033008d28e8ddea6b033423497901559447f15ace9194dde2dd01fa679726ae9ff9023223851176592e008302956f94998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bda7fb60b2dc781069eb2266115f758e8f3738858d63fbbb321c964ac10795b0c58f35eb988ee5dd493f271bba36795a7f949f378449e339e8041b73b2b09b9bc356173b6a8f7b32c0bb689ecbddbaf35f49219267426a92f825b963f578624cb8a5eada59b99aa155ddd1664fcb4bd275afe83d92a5d278298b81c9e7bf5979d361792b864ec7193e05e2902dbb5c1a1dc97b11e6ba2425cd85fc70bfef0ed26340bd88da4d4ad7f678cdfacab3a163c4495be773b266761f072b5775a65c45e6cb6b274fbc933d5161d201b57d1968b3e548233d94e0918b29e3246db24af10874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ec25a01a3a5cc3852a047a4bafb64f8a668623a3dae3ef358747ce2acabf6c53a20bf7a0649bfc0fe6dc1863c050380b8950a9e3bd16f6d96cdbd6c509d9fcfe52626caff9023237851176592e008302956894998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b09c68584b63fe0c2b09973e9318570e835f4251485cd35275c950e3f6126cb382fb47cfa56a91a5902b356788509ef27402a02c808bf819fd5e330e7dbdf0dcb18a22af3358533beb27e666daa1e23ad2f463991e85100e2e5a9cf83c1f4092c001eec81d4e5eb47f135bba800c40b6097f54d508e5bee8ee40902f5214c2f9d4d0c10637c2bd2e82fa5c75b6df67103185e90efa5109adda52320fc643f5bbb340bd88da4d4ad7f678cdfacab3a163c4495be773b266761f072b5775a65c45e6cb6b274fbc933d5161d201b57d1968b3e548233d94e0918b29e3246db24af10874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ec26a0441414faee5f59d61df4a8d41d79ad80eef81c2f8431a24c87b9bac17fc0b6e1a06efec9286389c2f08b81fa3bc96d13df4aad4a63472d9db6e312024c9461cc7cf9023227851176592e008302956c94998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bfb04bc90f99e584494713e04d885770e7cacef7fd3000299f67d5eb7b31223d4a3b785082f1158d9ff4cd75b69aa8596052dc62f1ff25a11c69d90120f5499820f30eefe6fed58cf9ccfac0a88d7496af93edf3ba56aa775cafd5c5b961e58e18a5eada59b99aa155ddd1664fcb4bd275afe83d92a5d278298b81c9e7bf5979d361792b864ec7193e05e2902dbb5c1a1dc97b11e6ba2425cd85fc70bfef0ed26340bd88da4d4ad7f678cdfacab3a163c4495be773b266761f072b5775a65c45e6cb6b274fbc933d5161d201b57d1968b3e548233d94e0918b29e3246db24af10874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ec25a03edf1ec5515d24cd6ae48fb7cf7bf71bb8471155f3d1104792c37b05e6edd8aca009013b9615e9fb3fce68811d58ff915d6cbecb8e1516b74742c4051c252c1847f9023228851176592e008302958794998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bb9a8676205e95ae90a5724b2caabc4efd961ddc62e3487920c14c9411d61b2283edba76b7e8d78e371a8e11c61dd0e1f2d4a13ce175af5fb334ffa2e07dbfef00f30eefe6fed58cf9ccfac0a88d7496af93edf3ba56aa775cafd5c5b961e58e18a5eada59b99aa155ddd1664fcb4bd275afe83d92a5d278298b81c9e7bf5979d361792b864ec7193e05e2902dbb5c1a1dc97b11e6ba2425cd85fc70bfef0ed26340bd88da4d4ad7f678cdfacab3a163c4495be773b266761f072b5775a65c45e6cb6b274fbc933d5161d201b57d1968b3e548233d94e0918b29e3246db24af10874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ec25a0522d309cae353a7be299d363c1266eaf01c0af8fccea6bc077df8c0290e35f26a02f9b656d300083aee207fa4fe5a106e6ec8a9aee4461384b457b394380d335f002f90239017f850df84758008512a05f20008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b731757965ed46fc36d68054a97c619a03f0a00720cc10a03dc3c52a38b23330ee48d2187ba0d7673db0b3ae258af1544bc57799f53c7e00d3d4307deb0f28b599012c5df556034a8971588cb55eed2a1ee7a2f7e37e6692714f6d1e69b393893666dce4fcf2dce3d119683aadeb1ea17923ba5b074391c1491f124cadfe4b30ca443a479748450adaee230a98fae2a7f7e83ae41978a4a06a7e255ba23e5c90663e97180e1ab3461725b593d992b80fe8cdbc1939562c814a2ca5d174874eb00286b4cf4b050097d14205264d5de8efa790b96fbc3b6ba991b67d2becd1cb8d3874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc0019fc9728b1c20ba7feebe866fe46d8cf1a57395dee82124f47857c4a9c11ef0f0a04d5f1dad7f137b2e53a75e79534ca65159687e9d656b697b9e11137a8982238802f9023b018196850df84758008545d964b8008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b7bcb053dc9008f8eddc1e917251784f38889b1906ad94f22329bc4d8f823f76ae942adee59f8324d03ee7151ca9f97b30e8035c503f7b1c343e5c60cf121a7d3b74ffd93a9b87839b9f21bba96a3420c2c0b969d223e76c6945b874ed152f4f7001eec81d4e5eb47f135bba800c40b6097f54d508e5bee8ee40902f5214c2f9d4d0c10637c2bd2e82fa5c75b6df67103185e90efa5109adda52320fc643f5bbb340bd88da4d4ad7f678cdfacab3a163c4495be773b266761f072b5775a65c45e6cb6b274fbc933d5161d201b57d1968b3e548233d94e0918b29e3246db24af10874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a04b8bf40783f7a6b0fe88ad16ae1fb5d9cbce6bcb18d9c83757111601e2380e54a048a3a37188500b99394211f56f9462b6f8fa0f275fc3b1709a21ebe972cfbde602f9023c018201b6850ba43b740085174876e8008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b264544abc566124db9e88c858ea8a166518e8ec26a482178cb4d485215c75a8f9bd0fb10f44d92b01a0f120d3d43c06cadf844c9b3cfc3f76054bd1363bb7b921a5188d028e80691e16958566ce420fa9e4acd11bab6b0c075dce32253f03ddbff0586c654c72f961025bfaa62fef509077af2d646ccb51f70f8d002a6f80bc74f248a910747a8e9eb820a3e41030a74a5c855ecf46f86dc3c7a59e806e65db57195d111bb22b6eae6d7433f44fd3ea2e2c4e9695bf742d66309e25cb78c1de5c71f093cbc8098834ba48fe552a93d701ec4d36b6a097a496858db8cdcd208379ac0c400cb6837182b745f26fac1e87ff6eded4c92365a9807bb2150ecbc7121960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a032239dd7ae7d672dbee9ef4591f5d2a083ae4cc1baa2aa980deb514884df7a81a06055b133c2a7e3b70e0c8ca8e4e2149137e3929e57f1f6a635dd6a82343cfbd602f9023a0116850ba43b74008545d964b8008304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b80e84cbfc5c079943ee19b564c7cb1c0904212a33adced3bf09f5ecbfdbc0c5d28528082db6586b8e30032025ff7d517fe8b486b905a158faf32a3886b3ca7cd296055fc571146d9ddf3c739821c98b71536584de28b5c9fefff32e8937edb6cd2f8e9cb25a0c039f4213639428ec514dccfd49c1ff6caca559f9af4f948e89ee04a0a4e50daa4141cbfb0658f625b72ddfbc600881b4257e454b0cdbfcd45a402dc47c65737484bd364c502208fde3574be9e39776789488a862806ea233907b7db17258af1aa1618665bc04645d5b0c2a5bc6c16c7285a4c645fc0aa5dd222e09090a4240cef86f6c4a7c1c98ca76ce47f9feec130fb3dae8c9442a3806c505160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a01c795ee7dd575cf201c7ca3e32b9cff09248dc257aa168a1368900ed82e02ecfa02e50bb03de1a07da9abc191a6f0cf8c8f0174ee0a8a3773c173c39ef1b678d5a02f9023a0154850ba43b74008512a05f20008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b6b8be841ea377404c041938ad8fb2d801de46ed30c4247027093780e68b8701bcc9fe9f96910c267cc1ecdc02a2964570c66ff0eb25ae87f31a45dfc2760b04189a501e10f41998613944814f1240003f513ac41249daf812dc19c5726bc637d3725ffdc3de47ceefe163f13df54cfa7b398c9171b53598ebf0596009bfb0cfceed0bdf6114248d7bb901fb3d726a53ea3ed244bf39c5029b03d6828cc96f37ccba6d2ef29cccca4fa453062395770480d56588111f94b9615f951fec3a4c57be1c095839abad83fbb732382ce6110e4767327b558f173562c36e0250ac9f3e15d2432a83ea939195e27b727120240cc6fa83ed6cf36a74616a2e8b2e72d5f4736eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a04c7d8db89c5422dc65adb097c8f5ab6c011f82d28987543d562543edfd945b42a00503fcb3cbf24d27f8794a7c8401c1eaedbb04205db278e76d0f120312bfa3d402f9023c0182026e850ba43b7400850df84758008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bd62826cdb86f5058750f8d583c145dbfd97729b6e142350b41589ba5ce9e7dd95d3e9b05910872a0b4153757a71464074df8cc0e2e758d8a1907dbec49477a13b2f49b7711b17e3585f9a0c620248969cc357d908a08801d1a1b217dc02c7d62d25255a0452b6ed48bec4cc84769d72a360366c827346026346457ab537629ecc082e8d3b33f23ead586b0c03120973438415a1548113ccdba2873096f347582a27e7fe6f5688081767d606e6a17c36d1a8271eab6b7fc2ef47c2306091e40a611686f88b4b1efb63f3d02102a0bd8872ab8be325fef22fb6b35d9cf8ea8d81a6ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0d78ec7fc21f54daf83cac0ee10369958e6e7e9b2c5e95616409bdc7d759ead0fa001585b308d574104aa68976981e34b0a1bbe43003b6c54a82f166dd1aab4122e02f9023a012f8509502f900085174876e8008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b8176349314eea35c3bfbb03e9ef01ecc9713f46cd379a745dc747218d6a053f5926fe3503555945ef5d6e47e55b7b2a636ae7694d84611b4ab80c22fe3cc7b753e47e067aa2ac79bbc2890e81edb81b943b1e7594f3161a7576757af6b5454e25c21c7bf72845ec58b465183e9bc1d605c870975b3347b8d75184d1ef2ce99053bb3c4fe085120402b6902790224fd459e47fa185d821e298e45366306a5b3bc4a357aa0e28aed6f9b0ead588f38d4a27d852dbb4b90ccbf35d7d49dc3bfed3c7d510e7bd2727bec626207f433b8ee3cb02172d7e3d463087da63edb1aa1e51173bb78fd28784e7e398a646408ffcbe410c7c3aa32abe694422aa038737ab8e1960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a0bbc723489e542abd9206adcb0ff6b6b9efe3f10fc7b118600d07b3220781934ea0117ab64a01a74bd53e6bb86989bbb6f945b71b1edaf93159cd3a3c866a59e08702f9023a0132850ba43b7400850ba43b74008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b1871e752854c0a22563c3a15ef68225d2b5290fd0bc4fd2947953a819bb357325e0fcc51c50d3377baa26bd217d5a64409351d16f2a4da5684ec1b0293466ebd64da476bb44d716ad470b26b162a0e8bd5712c18b4252332643b04aeaecf01b95fdf04e0e639d8cd931bced7b63973c735f3660262ab7b674b3670c146bafc32a9fc4c9d4861258f42a4bedb4d17e6a531f66b6a3818b42c08d1a89d1b58222002dc47c65737484bd364c502208fde3574be9e39776789488a862806ea233907b7db17258af1aa1618665bc04645d5b0c2a5bc6c16c7285a4c645fc0aa5dd222e09090a4240cef86f6c4a7c1c98ca76ce47f9feec130fb3dae8c9442a3806c505160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0d9eaa4b3e05116b039bc7987e3fc8446a7f95f9abc74cfe1a945dd16abba7ee4a040e73630cbeadc2da1198c67277588b0992b8bbf85e95f53bd469cf0fdec59c302f9023c018201448507aef40a008519d81d96008304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b52814b7ca8bcbaa05eb480332276777b395e28aaac9d712fef9aea9df0667fd27e0d1034c1eaae3eecda57a5551daccbda1f253b5430e896289f29620cd2a047ac5945151e9f5337e7353af3325bba2817681b87786e085a549abcd405c8412770ac02216ffa06b83b127b6c3cc19ac4e4e79e6584305fd3b1a3c966de678a1db5519ca5ce8fdb54347e86127447cd1be7aed6e72f53e763ea703a78c9fa1df6ad846c4b85e9b0b88abfec7daf9b81d6d43d2fddd1fb323e1d8ab86d248a15a70a26c2c2ea9612e28d0aa9296f80336adcd076167b3fc1705448942052a9852eac5912b920cfe151d881ecdfbd81e708a6fc74fa4215f00e3511a5ac0f229adafc56676746ed65e7e0cb2e85384b58a35f638c6fefa696d8c6ee519b7fcaaa602c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a054a17f03bb5cbbb641f678f0057881014147c73a837768b7ede3a125532bdf1da0236c667979c3e131a6ac9cf99218bb668a212f0e1587e4f3f1bb2c422059faa9f90234820255850a3e9ab80083084e2094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b4a07b4959191a1d9b9f1b9d7b2d81f27ac5d0bbf295a0fa6e711ade9e888d169ab0c85f7941c383d79bc5fa6e0d23df85a39240727552803d176690519414b2bafe9d4cf2cc3ba077075f652873df1968adaedf5fe80d9786f0413fa516854f370cf70f58796ea5b9a880640d898874fdad0dadb6402f8086ed3c671fcef825aa24241628467a8526d652b04a046db8e7a86bb28fcfe2b13054ecf29a2cf302f4a357aa0e28aed6f9b0ead588f38d4a27d852dbb4b90ccbf35d7d49dc3bfed3c7d510e7bd2727bec626207f433b8ee3cb02172d7e3d463087da63edb1aa1e51173bb78fd28784e7e398a646408ffcbe410c7c3aa32abe694422aa038737ab8e1960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ec26a00b495ab6333f98f467599b047e4448fb952fdfa1d1044d7ac66b97a0d5332c2ea050054dfbe471cd95278b0d4cf9c7afdcb9be216ed79413df83907cae64b8e4f302f9021c0182061e8507558bdb008513580673048308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000a42f26e2c7f40cfcd6d1d3e0cab9b9bbf98a5d4e47cb114110b770c3c854f59e4f687315e5f218f1b48986a3e80f5b10b86079ef914d0673c9f98f19fe4c206898951400eaf551dda3ba916dccba7742f8634a39335b7db03a5c8988508c33c6ca4b09b3f6f27ceb5ccd8b90b73ce2ef6199907132ee96c2e518ff9a3f14ff0e4e873e09ef631ec01f39cef9854e7433f9774f38b3edcf74463e36a28b36d6dc4cf2c918cfd27b5174f472afde4336532960910721cd7680ab2a8634341ec8cd62e80a0dde9daae04d4d607589027b4a67ac9ce47b5db4026e967ccd38695dcec4c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a009dd9e55f0c99d34b5fe21297f7dc6b02a5629aebda2314c8bb9624942b09cf8a054c8a8af6878eb36605944cb50145c9c1009ee19ba27b01432768098845094c802f9021a017a8506fc23ac00850ba43b74008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000aa6939c52c86a280bd6554c4bdd9c01018a686b2338ea6c69650e86ecd39711e068295d691f18dd00307230424c0ce98759eee2b172613fb27b76a1061752c4ece8e63c8a5b994d2a2f50bace168e2305472e12c8d87fbac40a913f00a235b4825d88d7fd2b74ccea50449ad3d5dd2baa127ad9c2a856eb50e33387d689fc2d4978f72220d7b7561b7edac075fc4b95c418f9cbba0c5cbfb7332333436cd3a6866c6b4d327b382242e1b3d577ebb1f93bd3d4012fd971b348f0128322b993929904d2d3a1c94affb7c27d59d54a29768078ad34fe118e46fde6b86664dc8fe3a84c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c080a0f408fca6e722261ccb898055570cfe208079371d88973a6673f6f7912d2081afa052286c2908e634d2c2ccda2a3bc3e0e174a373a80f107a657c57ecfb20edb88902f90363018278b0808502ae870323830f42409400000000500e2fece27a7600435d0c48d64e0c00852331b855609b98a469d741ffe634154cd2f94dff4b8be907940340a4267f000000f902d7f85994c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f842a0245d32d2da911ebe35956892a50b3686a5bbeb9c3bc6e8bd766cbdeada720e9ea072f864fb980cc162d5448982ebea90aa29973299e5f61bebdc7eff18a3287e68f8dd94a469d741ffe634154cd2f94dff4b8be907940340f8c6a0000000000000000000000000000000000000000000000000000000000000000aa0000000000000000000000000000000000000000000000000000000000000000ca00000000000000000000000000000000000000000000000000000000000000008a00000000000000000000000000000000000000000000000000000000000000006a00000000000000000000000000000000000000000000000000000000000000007a00000000000000000000000000000000000000000000000000000000000000009f9018394ed40834a13129509a89be39a9be9c0e96a0ddd71f9016ba02ab79181f575ccb084db8099a1242a3810b6ef62d770127264e3fa8299a8b25aa022ff43878c220263a2daa80473e974df3291a72e1d33f4cf35c3c71c3ca7128ba022ff43878c220263a2daa80473e974df3291a72e1d33f4cf35c3c71c3ca712b3a03df697e29dcbc9356a8d5ef9669e344918fc2193fda97fb5e7316bd981ab393aa02ab79181f575ccb084db8099a1242a3810b6ef62d770127264e3fa8299a861dba02ab79181f575ccb084db8099a1242a3810b6ef62d770127264e3fa8299a8b259a00000000000000000000000000000000000000000000000000000000000000000a0124e578617cded055fba15fa5032dc1dbf226beaa65fec9860c9705f4b2b1ecca022ff43878c220263a2daa80473e974df3291a72e1d33f4cf35c3c71c3ca712b4a0000000000000000000000000000000000000000000000000000000000000000ba00000000000000000000000000000000000000000000000000000000000000006d69403e2b9a4a88c27c996bae7a2f1ff62faec3ce795c001a0f8be51833e401f9dabf20a4270e652c50a02c52d7a615ea86ef7ada47cb43225a025f2cdbfae4d0671f2f29fea5adf361f6778582980d4c4c95de603bca0e546c302f9019301258506c088e2008506c088e2008304b7ab9425553828f22bdd19a20e4f12f052903cb474a33580b9012438ed173900000000000000000000000000000000000000000000000000000000b2d05e0000000000000000000000000000000000000000000000000981cb2bea70c71c8e00000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000fb088f3ce393b4e1cd98a1a0c9aef18bb0a5cf4100000000000000000000000000000000000000000000000000000000638206af0000000000000000000000000000000000000000000000000000000000000003000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000ed40834a13129509a89be39a9be9c0e96a0ddd71c001a0baf3a0cb192f158f8962e2acceeda750edeb4f51f8d5649fdcdfe7077e4c4f94a04859ba8de92e6216a2c5651bdf7099fbe7475ed9d39860d0eaf2083d10c30eea02f902f8018278b185141f29ef378516cdb0f25a83030c589400000000500e2fece27a7600435d0c48d64e0c008525c5500000af9da469d741ffe634154cd2f94dff4b8be907940340ed40834a13129509a89be39a9be9c0e96a0ddd71a4267e000000f90253d69403e2b9a4a88c27c996bae7a2f1ff62faec3ce795c0f89b94a469d741ffe634154cd2f94dff4b8be907940340f884a0000000000000000000000000000000000000000000000000000000000000000ca00000000000000000000000000000000000000000000000000000000000000008a00000000000000000000000000000000000000000000000000000000000000006a00000000000000000000000000000000000000000000000000000000000000007f85994c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f842a0245d32d2da911ebe35956892a50b3686a5bbeb9c3bc6e8bd766cbdeada720e9ea072f864fb980cc162d5448982ebea90aa29973299e5f61bebdc7eff18a3287e68f9014194ed40834a13129509a89be39a9be9c0e96a0ddd71f90129a0000000000000000000000000000000000000000000000000000000000000000ba00000000000000000000000000000000000000000000000000000000000000006a022ff43878c220263a2daa80473e974df3291a72e1d33f4cf35c3c71c3ca7128ba022ff43878c220263a2daa80473e974df3291a72e1d33f4cf35c3c71c3ca712b4a03df697e29dcbc9356a8d5ef9669e344918fc2193fda97fb5e7316bd981ab393aa02ab79181f575ccb084db8099a1242a3810b6ef62d770127264e3fa8299a8b25aa0124e578617cded055fba15fa5032dc1dbf226beaa65fec9860c9705f4b2b1ecca00000000000000000000000000000000000000000000000000000000000000000a02ab79181f575ccb084db8099a1242a3810b6ef62d770127264e3fa8299a861db01a0788ddd7a8f3630b9d657366222942980cbed3178b411ab43b42ba2874486c9a7a078de7befe356d9cec73e10e645e3f8c121ff74588d56789b732317d1eb006bca02f9023b01819a8505d21dba00850ba43b74008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bdb089c4a656f5e2cc441099febcbdaa0adbf04c1791cea41884f251c26adb64a4285cc45db4703ef6943852b9b73a249def3d0bf34824ea9f06b6340bf7aaa23d9a756c2f06b203e5ad8a1892b512b5b9bc840f76bf41177cad761a965b188f9eebc50061c39d54d33c09952f6cee90bc1270e81539ca4fd7d58f3dc006d547b72b23902eff9f9f3eff1f8031299f27d86f44118fa4a7341e7549c672dd27d5870f42c97662bb0ff7f0ecd7778cc5f0e1d56b8231ca6676e0d6e65f3c9525fbf66c3d0ec215d48641dc722bbc1415fc0d471cb99d87e39fedfb1e15ef24a4b92e09090a4240cef86f6c4a7c1c98ca76ce47f9feec130fb3dae8c9442a3806c505160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a07691df199e0dbfc09370bd5d82e8241703def1f94b2203bb6139b1fa568d7942a03a1bd708e1912d1840234db943ab293787d70472241f8d25cffe83ce1487aa79f902322e850861c4680083084fc094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b7b3ec7d8dbf6360e35253d0a2ab71b23d616fff30d1e13eee340eff21aa6b55c6acb89d205f74564d979747596f4f7bcc2a43ab54eb107cc5df90591644fa4f26f1b1c964c50f29a2310a3864059850ae92f1344be7b4f6d7c62e882a29d822e6d4d9af745f27cf211a19fa48b97871fb09b98ecdc5bb9c1f417a44549b5aa973888260316e2ba5dd17da490f9c83b1a213b971b71d6f7032c601e799cf3c3e1a5bcf21393057e42dff5aa97a7f8618fa048885409eee239831ea4875d50215eb3d774843f2f704d4b9b833718e9a22df645e4ff2dae134c84af306237fba47b5d2432a83ea939195e27b727120240cc6fa83ed6cf36a74616a2e8b2e72d5f4736eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ec25a0a59c7fb968ce3b9daf3dc5e0603c1072f2119727996d133ed83781bd52cc0d30a042c644a19ca2d62d98d9255c8e631b5b2963343c4d8b34c8785c809ba46974e902f9023a01758504a817c800850826299e008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b7855d214a101f80ee54d7056597b37e2b014a03debda3886f4698d394f3552c3bc2ba24e3723731d7db0cf4ce9667cf68d10940be9af37c798d98b96cc861cac54927259b6daad949ba933e3899d4752e9e6566e49b1e59e606ec64ef07f5d115c65052bff0e03c51fb48f6717821b42be97e6c2633cb2c1ae2597f7c5386db89a2b74895c93e64a7dae5947f6115b4caeda7b2c7bc103692f628e1fd1986b3d6efbea7d2d2578bae5493b49fb41af08c91de3e9cf196bf50d3b51a49e36aefe0815bcf88bffbf15080bc98a4d89ff43e0a6f9cecdd7c0745f45210fad4a5f1073bb78fd28784e7e398a646408ffcbe410c7c3aa32abe694422aa038737ab8e1960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a08b68eeb9cc88d3397c5effa1da10b89de247e470b58d3aa5d47bd40ddbfd683ca02ada6bcced6fa0de8445a4cd8c79e1ebe094179656abeabdd6ccf27482752a9002f9023a01518504a817c8008509502f90008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000baef8297e0d30d40d87353484af0c205d1fc9f09cfe216985fbbeb22750cd5575a427e76751a3c54bb1abc4f31f63e5f3d98367d17e683e6ad61e879bf793209f8aba446591ae08855364c9d460ceafdd8d340fe95f8a6ff333be53b1201272cbbe4d8eb489952ada4af205161cdc6be7994f2a8d5b598428e55f356485482cdbde7773b4b8f3d83ccef36bf1845e47781d828cd6d607e5b5b290c0e0947c4644eae5aca00e946d9dca1871117bf328bd20f5f7bc1f5a7e9e3e497e42d3ace8080f91a6423dba6a49f6944b28d8c41eb2a0acc874bd9cf07636081f448771b2f66ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0e597f2507eb32d615709a8096729f8e93d76f3b2e282b024665ac3c8849aef6ea022a873597a912acb0dc4c3c1f4525210c2d7f9fcdc6c788e5e1a2d9e505e5e8002f9023c0182025b8504a817c8008545d964b8008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b50bea470a810b9a44e8edd5e07855a9e7bb32f001eba392b9d97afc8908a145366e2de2f555044ab55217e36030826d5fec0bd4f57f4d2546db7d1c06aaa5aaa4e958362f8f11d2af8a2e7ab4e350bfb1cc304d930767af5e1f72a64d8d709887b8e382938307571430d6f237192da325989241fa10faa873d51224408ad85cf3888260316e2ba5dd17da490f9c83b1a213b971b71d6f7032c601e799cf3c3e1a5bcf21393057e42dff5aa97a7f8618fa048885409eee239831ea4875d50215eb3d774843f2f704d4b9b833718e9a22df645e4ff2dae134c84af306237fba47b5d2432a83ea939195e27b727120240cc6fa83ed6cf36a74616a2e8b2e72d5f4736eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a07d73dddd32ecf6466811400c5aa7030d62c0fcfe2357f5978d886eb186bdc002a040dadd94d33b5c9525dba7d771632733fe8268dd50ee0f7a53e81147a13afb97f901308208cd850700bf1b088303e418941111111254eeb25477b68fb85ed929f73a96058280b8c80502b1c5000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000000000000000000000000000021f92658262f80fd0000000000000000000000000000000000000000000000098b7d7ea849276a6c0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000100000000000000003b6d0340a469d741ffe634154cd2f94dff4b8be907940340e26b997725a0bf3a8076a4cd912dc3f191159d32edc47f0d3f9c36af302326079457e4b91067a030e86082aa7281f4856f03620f1407abcd6a712d6be7be0b5a5df7c01a92ec0302f9021b0181b085037e11d600852e90edd0008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000a6bdffb558ab93d40337f1f86b6a78c339ee8e701a993e3423b6895f45cc2bedecfa6f8e3cc6e275bccb95a387c3bc7a65cbd9ba18489786dc692efab9a77cd7e71f8352e1629f66a21631954386c7f1ded22b3c71a6e48d806dc96a0517fffd01c6b0ee43294536b92a2737ed589fec94d21534859ac21eb9e279ec06504f50778f72220d7b7561b7edac075fc4b95c418f9cbba0c5cbfb7332333436cd3a6866c6b4d327b382242e1b3d577ebb1f93bd3d4012fd971b348f0128322b993929904d2d3a1c94affb7c27d59d54a29768078ad34fe118e46fde6b86664dc8fe3a84c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a0d070296f8b13ebc10af77e8699518d46201d01876a40d0ddbd4beeb92253df0ca03754c9d50429dfbe617cab7b78291c16929b3360d352ae878d4da9d00ff998c302f9021a012485037e11d6008522ecb25c008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000a25f3433e6eb797b90010bd66d802c9db7193bdfbca289e7f932b686a28319b95eb346740d7597ed6f0aca39af7747a82ccd9658984165d043832a183d1fc56fe6a045915cb59702356344e05a76d75eba1bcf7889618de851c8fe5bcf4193012e51d4f4c182e17e6c50e69bf305527680e005a6abe3b367aad091acda0238374ba63c0fdcdf7e22d3e03dd751a495249339c2dababf333a1bc91f55cf6fe5c84f2b47b4054697932573645ed95fecb78e83ad418cbe402f3f956712ce9a9e4f7129106175d04ef2a2bc0df351e0cb830acfd4971f7d420775d642efed0aca938ffaed7b71e17931c50b3e99ec666f5a3bc118c101dc25a2118045b917db2f8ef46007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a06371597b3055660334ce263ab9891ab48ccd3c4c48b3f6d2d625b184592f198ea04fc4de8ab5d0da976d509082230bddbadf7f25d4d5e7bf9903c78cc4a71ddf89f9023381fc8505d21dba0083084f7094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000ba7a541c0eca0980a2c25b4059c582fc738acd2f479b9494094fefce702d02c0bd1eaa743b35b207e29f0fbcf3e4aaa4203c32064b790ee1f0dfc99bde414980cc0f2dba35615ac2592dc1d6b8fb26e39b7246c16d96ad15a12809678a0e37ed76d4d9af745f27cf211a19fa48b97871fb09b98ecdc5bb9c1f417a44549b5aa973888260316e2ba5dd17da490f9c83b1a213b971b71d6f7032c601e799cf3c3e1a5bcf21393057e42dff5aa97a7f8618fa048885409eee239831ea4875d50215eb3d774843f2f704d4b9b833718e9a22df645e4ff2dae134c84af306237fba47b5d2432a83ea939195e27b727120240cc6fa83ed6cf36a74616a2e8b2e72d5f4736eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ec26a06ddea7e5dda69089993cd62547d6ffa126fc6a397614a14e407165e81f2e7c64a03c6cc4943a2e4273664fe7d8e75eabd6ca2dbd6ef359b5fa7960aa7a838b70c002f901fa01778504a817c8008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b90184d2cab056000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000009ee287a183ca622f382bf36dfdcc878ac46aa29c1238d3b9aa630313df095e93f599751c430d0af9c83aaa893ef9d7e869ca37017b78645ba4746547866d2a36b4d074d7c288e87c7c83ac94218e37c893dfb593f959781d38ab7da5c144a1b24379c68415c9beac8697de0b6e09ecdeb979ed4dd950db7cea20f0ec251cc3c7fed220f04e94ab022c296ae9584d24eb79a4ba3b814090b8de476fac2b8526ce49e0e6d9f8276753500114d8a5af3b36b875e5bc835dfa3671f71155bf7574694f6be2e818d23222100f5a2543c3e0133f0dcf5dc686d4918328b86adeb6d38594a82199b3530ac248b1c97de1e8cd1c656efab7035d8bca80a6e135c4bcb077797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a0f5b49d95fac7dd470c39506397158b594cad98bfbbe123d8a728f67f71373db3a0488f5f9086d999ec87c7a6449588d4dcf6b3b0438408037d34ba4172c14ef87c02f9021c0182048d8502540be40085174876e8008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000a9562b24de5bfeac371352355f1b24decb9b37b60e6bb3a046028f86ee3efbd1a75447b2be82ae84ce6b0094e2e4f6603a46fcd561d8ad08e2b2fe2e8be0f5f88a96e11e066144d909529bc0bea1c8695d0e320b4112ff498ab9c2b5d6b7bfb5b57ac235ea98aaf9d6bbb661759f4850633cddea79fdb818c183e27aff75856c4e68e16c59423e104367604622139af9cf090e61899f48cb546f5cb2d14d6d55a6036917a0c38e9bc8a8e5fae1bc68edda5ea467d98ad83bed995feed0ecfd3e1129106175d04ef2a2bc0df351e0cb830acfd4971f7d420775d642efed0aca938ffaed7b71e17931c50b3e99ec666f5a3bc118c101dc25a2118045b917db2f8ef46007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c080a08e24d843c05ea20580c18281480d2b36ba81cf9ab52ed54401413ca47d1a4a28a0498e98b5d2ed154ed8b31905e044887a09ac1085850aa3800b38302d4f3b597902f9023c0182016b8502540be40085174876e8008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bc2d133850b3825def8ede3bf0cda4590448bf2df5faf5118f9ceb9200594f9c448bb34023acc41b666d1dd5a39ab7e056199d0b66d6cf2e493b184451b2b68c5be1bbcf99123ded8e17d7134e061d3acff95ff2448f48fd5ace24e0fb165bf34f77ba808002882f5ad3e4a3d593212291dc1adb4a2c2883826fa2eab7487e13e9a2b74895c93e64a7dae5947f6115b4caeda7b2c7bc103692f628e1fd1986b3d6efbea7d2d2578bae5493b49fb41af08c91de3e9cf196bf50d3b51a49e36aefe0815bcf88bffbf15080bc98a4d89ff43e0a6f9cecdd7c0745f45210fad4a5f1073bb78fd28784e7e398a646408ffcbe410c7c3aa32abe694422aa038737ab8e1960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a052733887f1dcb848a42de5c674c4830b8eb8ca354e3d046f67d31515fda8a66ca0083e22a0ef2651e140cec5727b5ffad9531cf40798fc8bd4f9a859b5b84f09f902f9021a01028502363e7f008505584dc0fc8308ed2894998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000aa3c773be8bc1382183378836a223aab62bb0d6889d8b6dc25adc67868a433a11d37ffcc260fd63ceb43d101e45663ecd0e42b3de784f5938c73b9c11998d844b7963118588116a64dedbeec0dc33397f366921c0e35f19c0ae4412ee11e114c29467c640a6e37406a471a0963268dad95dd69341812624eff05606d06e436423785172ed95a0482469ac7a2e8f9ca7401e3e0c0a071191f2fc3014def9f2d0a84e8d984320f8a4ac96d98628cad8909074f97538c2fbaed8c12d0a045e7424af04d2d3a1c94affb7c27d59d54a29768078ad34fe118e46fde6b86664dc8fe3a84c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a09b8b42b8b5c85276785f49f5b32d494b6448e3f1d8c06eb1373550a51af9392da0631d70f1cb6cf4d29ce86571e24ddf6a2971773ecd371d4639319c6d6907281a02f86f01825971850218711a00850bc0adbf6483061a80946b9aa8ba525bcbfaf010aaf92e0f8da98c76959f8080c001a06a727b1c2484c9a4882be69b9ac801071c3fc610c7c68808fe63b67cfb7a0413a040a12120c89ae04faf7e20f3c7ddb232b74cb31c3a4337bd8e4287af34860e1702f9021b0181a78504a817c8008504a817c8008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000a256dda8920dcd4a5c04490050b9478e6c166c9b974f89eb56a10e8a7d473cc04f5c5f82bab15721606b38b333df1cabe5f1c0b8da4449a32a1388cef0d65ebcb7750ad06f7c3255aba180fc177d12975f243bb1211dd0ba2baf214e2a5509d4cd0fd9cf2238c6694f8c18daf5cb0b5a49d03c42f312bded35f8e663d340669fc7d5e5d9de9a0bc0b6593d1b691e70105216de2cbc5e8dae6e4bc358c4c0c6951cf2c918cfd27b5174f472afde4336532960910721cd7680ab2a8634341ec8cd62e80a0dde9daae04d4d607589027b4a67ac9ce47b5db4026e967ccd38695dcec4c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a0d18a7711df9da7d112c0ac2bb544461f82ce9271583443985a1640d4b3e05d8ca01e799c8df62b788d90a1442b259ee6d706d7150cf3391383440c8298758af728f90149128504a817c80082d6d894c36cf0cfcb5d905b8b513860db0cfe63f6cf9f5c80b8e43db0f8ab0000000000000000000000005ab8ca7e7984fd8e9e9e5ca7b5b77b98214f611d000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000005bb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000126a0b71d4d454b7ad08d99b7522c947ceccad2796c255c07e7a9e2b07eae2ca0ca90a023ce5af9a30e842fd15f04ababae0b7654d06ae32de14e9a0d11282be2b4b732f86f8304f2a78504a817c80083015f9094d181e690799612e9b22a413e78a5609359e9ca9b87d60298ba4d68008026a0a5b28026eb44ec9b32d35926ba20093ed8f032a598693d69fba30742cc08b11aa05a826604a03b9b3f07bfccb4cb8b96dd42d429db73f8a927d5895ca2c17691f002f901fb0181a78501dcd650008513ca6512008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b90184d2cab0560000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000093d196ef281f0478c9c0814d7b553dc7fd38181ffa297ec326ee030adf5d63b6f5f2f7f8cb5a7c02b54825b233f25f811802148be2635373df49081047ef63cb538f942b721541a3415a609d0abfef271e5fe02dc284cfb677a1bc4f039506ce1e73a79fbc577fae7de1955e0e18d0e94cc3e2be4fd63f9f856f72365c04724d47aff8cfbd92504b0719548d30b0853109a0defcf494e1d8995abfef7a4f90e269e0e6d9f8276753500114d8a5af3b36b875e5bc835dfa3671f71155bf7574694f6be2e818d23222100f5a2543c3e0133f0dcf5dc686d4918328b86adeb6d38594a82199b3530ac248b1c97de1e8cd1c656efab7035d8bca80a6e135c4bcb077797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a0f2e18e1ed2b27aafb928ef8e64bbdde2fe52fd042ae1d060ff8dc8b52278433ca0652534270329e1e53ac219de55a4fc1324545b6c920d9162e80892eefc4b0226f902348201108503e95ba8008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b1c5f3bc9ed581ffe9dfb22ae8a5a95332ed3188f295c1814b1aaed40e59e8381edf363f0ada6ffe81b08e543271d02e6137102a89ab110acc1a88d49b3cb7ebe4e958362f8f11d2af8a2e7ab4e350bfb1cc304d930767af5e1f72a64d8d709887b8e382938307571430d6f237192da325989241fa10faa873d51224408ad85cf3888260316e2ba5dd17da490f9c83b1a213b971b71d6f7032c601e799cf3c3e1a5bcf21393057e42dff5aa97a7f8618fa048885409eee239831ea4875d50215eb3d774843f2f704d4b9b833718e9a22df645e4ff2dae134c84af306237fba47b5d2432a83ea939195e27b727120240cc6fa83ed6cf36a74616a2e8b2e72d5f4736eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ec25a04c0a20ac0a13fb6d90097e18a71c80736bb2b1415a66e6c350499e404e6ab756a06353aec70426b13b474509ec5605da6267cdc151b8e5bdf79e10b3cc70a260d4f902127e8503e95ba8008304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000a7fe8b2f119009b4f4e6ec368feb9699385f99787aa69e5cdf273a8f3f8780968b288fef321ccbbe17946428e2336ab9df34af4a903a6d6e898e75732572d7e51b2b75453e3fc733f9241681faace1633ff6252989ade7ab7b10e10cc367fc2a2e8e6a9ec934b7159150528e2eaf915105561956da23ade19970cebf849b88211f0c2dafa306040fa2e8a7543fb78dc27bef039464182c5d4ef0f4932f43d03826c6b4d327b382242e1b3d577ebb1f93bd3d4012fd971b348f0128322b993929904d2d3a1c94affb7c27d59d54a29768078ad34fe118e46fde6b86664dc8fe3a84c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e6226a0732b217d86cdd192e18e0eadc0504119311e3fe10b1b2d5d454cf5de612cc3b4a05087d2e9d5e7c2beff0f03bc2aea8a3c2afd173a4ac517cddbb8b8564c063d4502f9032801828ee5808504ec65d5e0830493e09487d9da48db6e1f925cb67d3b7d2a292846c24cf780b901042b81bc8700000000000000000000000000000000000000000000000004b73fcfe157caae00000000000000000000000000000000000000000000039d5c1a27d6bb200000000000000000000000000000c09bf2b1bc8725903c509e8caeef9190857215a8000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000063820025000000000000000000000000abd69d0fac4b0851dafe100979df808eb7fb81a90000000000000000000000000000000000000000000000000002367c6036204ef901b6f8dd94c09bf2b1bc8725903c509e8caeef9190857215a8f8c6a00000000000000000000000000000000000000000000000000000000000000007a00000000000000000000000000000000000000000000000000000000000000009a0000000000000000000000000000000000000000000000000000000000000000aa00000000000000000000000000000000000000000000000000000000000000008a0000000000000000000000000000000000000000000000000000000000000000ca00000000000000000000000000000000000000000000000000000000000000006f85994c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f842a07bfd1e1b28458bb4f5f19c57111a67018995cb84791030d95e1961bcdc99e256a0113d4cfc2eb9a0e7c9f48ec60bfd3dc70eaed8580af1972f589aa41c044429d1f87a9473d7c860998ca3c01ce8c808f5577d94d545d1b4f863a00000000000000000000000000000000000000000000000000000000000000008a0113d4cfc2eb9a0e7c9f48ec60bfd3dc70eaed8580af1972f589aa41c044429d1a061619f4ff8176f9002dd5ab3523e6aa4aa7eea503fc92d6effaf2faab13e801680a012b6ff41736eec4147c38559a9dc5190b5af57265e01af5ff53b6cc83ee42dbea002e956bb005a76e38f2bff34cbd33c155a5465ee4c1bd06d2215b31c3c215f1502f9021c018201ca85012a05f20085174876e8008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000a0e91f725d2c0dd31115587561ef336ca683c624974d1a713641a7268f2a2c3dc39548c4e34f0ae652449696fb706bc8e258a3f8d4e6e849e39e5584b0e9ad1bca33837566fb054d78a3870d660451d5a9c6bf3b841e52769087e1104a9587f0392c41e6f679c59d57c7581eef926e696483ec17096750a2c3afa8ab7710596637d5e5d9de9a0bc0b6593d1b691e70105216de2cbc5e8dae6e4bc358c4c0c6951cf2c918cfd27b5174f472afde4336532960910721cd7680ab2a8634341ec8cd62e80a0dde9daae04d4d607589027b4a67ac9ce47b5db4026e967ccd38695dcec4c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a043c8ef4602f79f5435c592fedd10e4bd0f15743d3b203bd16f9205804ca99f75a0068ed0cab060dc76e7f86b22a21263347094c33d85263c8572f604af6e88616f02f90113018206a584ee6b28008505d21dba00830231e794ca6d7604ae55ba1ba864c26692a91979f25cdb9680b8a4962cb60200000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000041fa8dbfc7cc1b59cad19b93fb8ae3030314c083724f98befa2c8c7bfe210faf4f4f3c3770797758755ae9f2ec2a512e2fe32e41f3a6f406e33e108dbe32e318dc1b00000000000000000000000000000000000000000000000000000000000000c001a093e7b7a2209132d8d00503609823e0a483546a56f7962cdd080b202fd973fde9a00ed98119678c03e644bc850600a22ffbce9856ecbcbf27c8581e87bd7fc7760df901b28085039bdf3b0082dea894ede26ccc85ae521d06b5ef2604952a421c9124b68817207a9b6760cc00b90144f1e03d67a555c465a2c6494d9520364b884667aa00000000000000000000000000000000000000000000000000000000464e54188ae628be286496d7bc0b21a6cd4aad0a00000000000000000000000028d1b3793be15f0edbd404292a9cc10c2e08722800000000000000000000000000000000000000000000000017207a9b6760cc0000000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000ad2000000000000000000000000000000000000000000000000000000006382a89e000000000000000000000000000000000000000000000000000000000000001ca5584fbb7c4603a0f43ffdd7befeed0d1561525d93ca20006ecc6220097317261497d89bb07d061ffa08da6247bf46b8bb57172a4d34faa369e0dd89cc9d406825a04a70c813f4858109d648374110334897e59d410d7d5b65de8c0de6344628d1baa0545157e6397ee7e0532f04235c42947c8ae84ad821be11dcbcd89d76e55b9f6bf8708373acaa85039ba41a1d8305573094456046280bb4dfd5afe340ad269abbea772370d8881bb3376cbbae00008026a0bd29d90317faf93dfd7b1f9e17198585de820f3d9eda8b99859537e04b4c494ba06002b8d82dd30015d9fed2ee3303ab1bb14f7080003fd46f5db1d49afcdfe543f8a90285037e11d5ff82ea609405237e2bd2dfab39a135d254cabae94b183c8bad80b844a9059cbb000000000000000000000000d947e806c01ae61dea449458ff8464c62714cff00000000000000000000000000000000000000000000000000000078369f8720025a08d692b3b4d483c8b20a3b1d92d607e0ee2e4aec43b4d38f9cf9a46a70ef0bd09a01072efc98bd4ab359402ad8640e2eb370537996950efe02d1c670162d4b8ca1602f9023b0182010584b2d05e008504e3b292008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bceb1191c091b11dc0bdd60703d510d82d6f6819420e96cca481d81090835f8a005ab6a01a4f0f0e3e5ded83648b79190602395df2ef89318f456ac3a2e63145f676e88cb89dc6a5c7cb54eef906f4e55947e60f19cb82945e83baae54f9f0bd1a65e3b79cdf73a12bf37ce442a6cc3a9c2cbab7ad1046373fac1a0041fb8b75f228b2bb2d8a4db141f93f7373bfeb3ada6c15c980958d2bf5fab8a12e721de77041322757cc78e51497468c963c098e84ae8e960e15f8345672c6d16f97f9cad7d510e7bd2727bec626207f433b8ee3cb02172d7e3d463087da63edb1aa1e51173bb78fd28784e7e398a646408ffcbe410c7c3aa32abe694422aa038737ab8e1960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0efc39d27a223cb3082672e357286b2b05f27fb7157e703dee77d1fa4c9cfa851a060cd3104bcab99d366bf4d5251d93f2531723c6bfc8f56b2c165c9b20658db4302f9023b018203cb84b2d05e00850b2d05e0008304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b34f98320a73532059fae6178e188f4eee471e157968fe99a90e1323fd0e5edab60276167e5b01e5f631b47561a7ec0886e58751b7081772c8409ab854b28c4a31edec07336bc39fdea2bcc2b55aca9df43ca5f8f5b2dbb1e5e64299e93e840ed5fdf04e0e639d8cd931bced7b63973c735f3660262ab7b674b3670c146bafc32a9fc4c9d4861258f42a4bedb4d17e6a531f66b6a3818b42c08d1a89d1b58222002dc47c65737484bd364c502208fde3574be9e39776789488a862806ea233907b7db17258af1aa1618665bc04645d5b0c2a5bc6c16c7285a4c645fc0aa5dd222e09090a4240cef86f6c4a7c1c98ca76ce47f9feec130fb3dae8c9442a3806c505160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a0bcbc0aeedd8e8b6e5a9b766a19e3d2eb57001cfb937fb76378a039388fedfce3a06a24e6f824e411a2acea833374df0241b3c039f092b8b37d1750819924a7080002f8b30182073484b2d05e008506fc23ac008307a1209476c5449f4950f6338a393f53cda8b53b0cd3ca3a80b844095ea7b30000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc001a0179e95faf9d4759795cd8c6645decd9758999b383e565df0224669d716b2aa68a03188edd85ae37513c0194d847be0783cad646df7a197d7a745a8663ecbd8041102f9021a0181dc84b2d05e0085104c533c008304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000ae9d225d9e05cf7ce1dc63a73601a7c8d2e7942b4143b6b37693faf946649a1d4789cd0960ea44bc6f0305ad872961a21cb28dbac7626136aa45f502eccc01523b4bfbfa4674225ba36f33c355a3eb6b375c4be7ab56dee23c3ef91477f82925710ae82141d13083170fa2d6d3036716f418d71ea863aad029f828eac4bf857c932e3276095e5232ac252337a3d6a4fec51886748206434b7dcceeea368a3c00bf2b47b4054697932573645ed95fecb78e83ad418cbe402f3f956712ce9a9e4f7129106175d04ef2a2bc0df351e0cb830acfd4971f7d420775d642efed0aca938ffaed7b71e17931c50b3e99ec666f5a3bc118c101dc25a2118045b917db2f8ef46007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a0e5e37a347b8517a312843127e6c3cc4c9cdd304434e9200e47f90a2bff93d07ea040bf99603dcec702aa7308a19eb45ca3520aab5442ee93d5ab34a40063287ada02f90219012484b2d05e0085181b2c03e48304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000ac1677c2d8aebe3c74d31d59ee170413bd3582f9ad62828460d74566a6a18bb3da2a4231c4d3d627ad779f60cf612b5edb53c7804d11552df07248bd30625a4a69ddd7f66185fc195af8fef05ffc4b5fbfe060ef55c3af75df4e9f043bf8754e4decf5e4e1131c590645de42305afd041f1b15fbb4e5c53fca066d72efc15d863e873e09ef631ec01f39cef9854e7433f9774f38b3edcf74463e36a28b36d6dc4cf2c918cfd27b5174f472afde4336532960910721cd7680ab2a8634341ec8cd62e80a0dde9daae04d4d607589027b4a67ac9ce47b5db4026e967ccd38695dcec4c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c080a07e462ce311a1e635888a945b6c045963cc4ccf36cb9eaf96a97b347d3987b9d6a0102dbea1eb1255d9d508b7ff34cd3134159e6bf2d175d97074ae1eccc0ce826202f9023a01818384b2d05e008509502f90008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000be727e46ed97d93bd4cd30332f8fd13ca0e6f96ee39dca9197eed23b36662b802bc2ba24e3723731d7db0cf4ce9667cf68d10940be9af37c798d98b96cc861cac54927259b6daad949ba933e3899d4752e9e6566e49b1e59e606ec64ef07f5d115c65052bff0e03c51fb48f6717821b42be97e6c2633cb2c1ae2597f7c5386db89a2b74895c93e64a7dae5947f6115b4caeda7b2c7bc103692f628e1fd1986b3d6efbea7d2d2578bae5493b49fb41af08c91de3e9cf196bf50d3b51a49e36aefe0815bcf88bffbf15080bc98a4d89ff43e0a6f9cecdd7c0745f45210fad4a5f1073bb78fd28784e7e398a646408ffcbe410c7c3aa32abe694422aa038737ab8e1960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0567c52127a208a82d2b6f1b685ba8f09915af71069718d05338cf644ae6fd04aa0529e78f32790e920dbfb932c8b078ec180f1746e8c496bdc0a1d578b90a99ea502f9033401824ac284b2d05e008503cb5a933083181959943caca7b48d0573d793d3b0279b5f0029180e83b680b902c4b87b0b4c000000000000000000000000b3f5503f93d5ef84b06993a1975b9d21b962892f0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee0000000000000000000000000000000000000000000000000000000000000224ad558ab90000000000000000000000001a5309f208f161a393e8b5a253de8ab894a6718800000000000000000000000027e606fdb5c922f8213dc588a434bf7583697866000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000018bdb3eee6151a000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040c7d393100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0308813996e157e91eed63c6eafa2633194ed1bec848dae1dd0cb4a24b41fccdca07086d13de05e62a3d9ee6878bd8329f4885cddeec2a97adae810ef66a393205ff90233819e85035a4e90008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000ba8b5a6374a8061a364bad98aad8a7dbb29dd5a328c682c2b344a1a8203446b320010df544c65e4545e421ba5c6f6462a012285fcf2761648d5f9ef424a82865ce52180099a30a501cfe898da153068e42ea4c76d92c1cbee8dfa699c20f1a6db0db86768464f964263b4d04fdcb22dc7fa92617721a737a16f279f245402f172ebf7682281fdde94de5d590f2a34b1a7e7b5c33e28eb1990fdd48d066f3818d1276ba5cfa6cacebec4c356545aabbfebd9579bede1231b857e2baa7c83e7f22cc71f093cbc8098834ba48fe552a93d701ec4d36b6a097a496858db8cdcd208379ac0c400cb6837182b745f26fac1e87ff6eded4c92365a9807bb2150ecbc7121960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ec26a0d445578f2b90dcf950b9743dd196057c291bb50eae79995655f59c284e0a9edba05e96cbde366c65bf207827aea9316d1eb1baa0b759197d69ff476c9aa6eb7102f8aa0185035a4e90008301027f94a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4880b844a9059cbb0000000000000000000000009994690f3cbd70d977467db0c0b6141b76a96b4c00000000000000000000000000000000000000000000000000000002d049574326a079c738fe2ac2a31db664c41c104f3403a0cd74d0f99dc7023b034353c50d6de5a06e38151af6e93d32708f944ce06cc7c359793f754eca0514c98f10fe12a7374ef9023482015085035a4e90008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b3870d0649e85c7431ee92925bcb82c42c353a6b3ae7087f812305a64e1f5cc35052c458154c09049dd11bed37a131553ab46d1ef3bb157980b111fb69d796783ed2cf250786a0c103b31b1af72c40e34cba68e463879df224a173c19bb493713116a56e0a9b1719b7de2653bcde0fa2f2b9a29368b85d3c8a4cb76b1f067cc2ae638493b504c4955b832bc4cd7aa2f05208f6a8480eddb8dad4d67b6bced37a8ad846c4b85e9b0b88abfec7daf9b81d6d43d2fddd1fb323e1d8ab86d248a15a70a26c2c2ea9612e28d0aa9296f80336adcd076167b3fc1705448942052a9852eac5912b920cfe151d881ecdfbd81e708a6fc74fa4215f00e3511a5ac0f229adafc56676746ed65e7e0cb2e85384b58a35f638c6fefa696d8c6ee519b7fcaaa602c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ec25a012d90904c1df9bc0560cdcf1081cba7d5571a1906593292f2be437286afc911aa047e4159ba406e113314094c2af0279290cc43c5f0711fe2ce3115a8e0ed3be4502f9023b0182018e84a3e9ab808505e12254488308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bc6379e4707c378a1b48f59ae328130adedeeee2be01e6897877205763d7320a4b100c46ab99a80b5930df4ac91e21ceb7677f81c185ef23e53d94e44ca86798e4b99cc1dbfeb7777d48b5728fe8e73e597158c2d3542e22c2bef2027211c070e05af0660f0c3354b734e06a9427e13e840a916b5cbdd5eda4e40c2d60dd21a57a24241628467a8526d652b04a046db8e7a86bb28fcfe2b13054ecf29a2cf302f4a357aa0e28aed6f9b0ead588f38d4a27d852dbb4b90ccbf35d7d49dc3bfed3c7d510e7bd2727bec626207f433b8ee3cb02172d7e3d463087da63edb1aa1e51173bb78fd28784e7e398a646408ffcbe410c7c3aa32abe694422aa038737ab8e1960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0f3a64da686d1e20581ef1d813d67c27058259a968824db27cca858b82f4a936da04b28765ac7cdee137aaf54134e06c913db895888a42979cbd794d54f66cf9ce502f90239012084a3e9ab808505e12254488308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000be6674ebbfbc519d5958c8d943967b369ca7fd39e41fa5dcdc74b9e819dece2d9d1eaa743b35b207e29f0fbcf3e4aaa4203c32064b790ee1f0dfc99bde414980cc0f2dba35615ac2592dc1d6b8fb26e39b7246c16d96ad15a12809678a0e37ed76d4d9af745f27cf211a19fa48b97871fb09b98ecdc5bb9c1f417a44549b5aa973888260316e2ba5dd17da490f9c83b1a213b971b71d6f7032c601e799cf3c3e1a5bcf21393057e42dff5aa97a7f8618fa048885409eee239831ea4875d50215eb3d774843f2f704d4b9b833718e9a22df645e4ff2dae134c84af306237fba47b5d2432a83ea939195e27b727120240cc6fa83ed6cf36a74616a2e8b2e72d5f4736eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a02b75240daa730b4ad9257ab25234f9eff07da7d95dac9a47e8a9bb8d071b0711a03fe8064f1675ca9e6b31f1e4e8fe6d0a1be0d4b8bf64a8dc15aa93d033990eba02f90239010684a3e9ab808505e12254488308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b21635d6387d997b93425b3637984411332620af98f38631f937fe97a8ca68d5a92463a1b9f155e20d4cbd385ec7fb1718d47d213f9ffc0c309f4a7f7bfeeb608cf4648c423447fb310378a6cf3392d3796ff1bc240d37fadfbcadedf2440324a6667e37f619c7a26f38bfea08235d5cc8404ff299b8033493682b2d73fe24d7a9c145f1a961634e373c2ac40dd183321dd17dbcb7435a0f7ba5c37f58120731c368fce61468f4a0753b448f8ce82ddcdf2fd716375a1fb922d174d111abd5fc40f91a6423dba6a49f6944b28d8c41eb2a0acc874bd9cf07636081f448771b2f66ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a04f9baff53981a3816b217e3b7f37943f79d73ff9375e5b602f99d8a9bd49406fa04fca136a718378b52eeb3ffafc50fd46d8a33dd8277751bc57684c358c31a8be02f9023a01818184a3e9ab808505e12254488308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b99497bc6c8e20939efcf81d0cd34182cdc3435e2a7d94154b162236b840f2a3630f1857e06949437fc37d922f5a3d8f9eb505c85b17bfdb4dae50834af0f5af52c63114896df964394ce28735228db04db1fb7d9e53b4cbca4ccb2f0f1af530ebfae2cc4a04753549155cda73390e77a0898157e5da2ae4acd9089f1539067351c343328645fb4d3145cc0675f6c7e3777aec91f5b1c338fe6fa0795041809d780eccfd9aa7d59e9987455ceee93c47cf30839c9e2242c79288ac5e451a96d567710182dc92f72c8293f10e2a921bc970f5bbc836aa36868eac1ddc8a894c17b9ac0c400cb6837182b745f26fac1e87ff6eded4c92365a9807bb2150ecbc7121960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a070de19bc55e9e30f14306471958642a137d7f5f79832005418cff36ccfa6bfe7a0214f222945ccde51a1477885cbaf79708e304309f64bc2ce9e04d8dc19434b51f86d82770b850346dd16ca82520894fbf083f0d2a9092fdca9aee7430a44bef152d369876379da05b60000801ca086fb17125c8be899ddd314d63cb36a72326c6e51c632ffb4bfbf73e22029044aa017dee11923750fb5ddde0bff31dc1a3e5ec85dce5dac19fb3bc6c480c8010b5702f9023a018192849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bb39e62ba9fa90a052eb76bc81c9422b13c8ca59eeecb796afc9f8fb4c78c3b2ae8c7585e43abf49d73247799cdb2af950d77bb044a7660ee30bfe3a227ffcd8dab138c9d5b45c6ece7a9a2ffc869ca8d60dd94ea9dec8b19c668a98875b772105bcda5c06911aeb660abba38421c0ff56a426281f61fb53eb000f147f02d9a151c343328645fb4d3145cc0675f6c7e3777aec91f5b1c338fe6fa0795041809d780eccfd9aa7d59e9987455ceee93c47cf30839c9e2242c79288ac5e451a96d567710182dc92f72c8293f10e2a921bc970f5bbc836aa36868eac1ddc8a894c17b9ac0c400cb6837182b745f26fac1e87ff6eded4c92365a9807bb2150ecbc7121960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a00ebdc320e421e4d10200a88989abba6a2755790bb51621eaa6c7cd734b87f8aaa01d663cf6ec10c685dea6972d563af56d47b1f3e86b7dfb386c7688efd76c5f5c02f9023a018195849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b3c2351fb8c1decd56b42811597216a1731798475e8b823a51bddafaceb2cf3f80f947e2920086274197649c1092b26a22c06af8b85f5e79b93f5752e77e1eb7ced833eb1d944639dac5d6576acac9527fd5e50b3be3a5f0bdffac713d622b81ca8c9ce932c51b7569e70fad2b348efbfded890dfaf8a8b43f9ef9780c40e47316f8ee6aca360d4cc0b79651c7c4294544080e7c14c28b91bdf155de019bdec5663e97180e1ab3461725b593d992b80fe8cdbc1939562c814a2ca5d174874eb00286b4cf4b050097d14205264d5de8efa790b96fbc3b6ba991b67d2becd1cb8d3874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a056bfc62c17131dbe50300e6ddc1a939c2e95b879a82908dab033452750ea2f20a0077f99b9fad50d032dda80ca029039fe6b8780fd4427622f5a4c9291bfd6708002f90239011d849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000beef5923d4fefe8473ee7de7ffe7fa26c8faf668dc19a2149658ed3e21fdf0ce2efa95f210be598d32974c5a17a399c1d07d1595e60614a5e9a2c988b90decf04aa503d2e2fc07673bac6f0c192da6899a662e13280a43ab0a76502689fac8f382e85b023c706bb0694762973ec8ba6a13e907b6894e00898fd3444968f555bfdeed0bdf6114248d7bb901fb3d726a53ea3ed244bf39c5029b03d6828cc96f37ccba6d2ef29cccca4fa453062395770480d56588111f94b9615f951fec3a4c57be1c095839abad83fbb732382ce6110e4767327b558f173562c36e0250ac9f3e15d2432a83ea939195e27b727120240cc6fa83ed6cf36a74616a2e8b2e72d5f4736eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a0ae53e6725660dffb80c9dc44bcc4f968a3eaa69ca2f9d83f0c15eb28859b4fd9a051ad3368ff606f106758a7162d11d34ee36e6da8579d2eb087524b48f496d59102f902390173849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b18493c5471a4c5a91733120f4fa4d0b5ee1943b317b44f0f942e04c44b29a5f8b0b2dc5bd3ffa19c420efa98da6c333272819beebadd2ae840de658a5a4b4a5016e447315ace9c41b1861774b36838281e6cf85d9dd53ae8ca8823f9d216f129dc1fca82427e68dd7b52eeb8ac01ee60a2a8fc84a7a68efbbd1a0e30ebabd02bca2fac698de5d0738c7811fd3124aebc22e52367beb65d084d958cc9cb9eba252ac86ebd96f96f7eab60daea44eba5a2a551436123ec6af1858d6c9c9e421d98b7db17258af1aa1618665bc04645d5b0c2a5bc6c16c7285a4c645fc0aa5dd222e09090a4240cef86f6c4a7c1c98ca76ce47f9feec130fb3dae8c9442a3806c505160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a0fdedba0fc90dc5e79861b3dc6cb8f3270778fee5443ec1a9d24a3f7489938b8fa01cc3ef3adc1f59d1810c94c3ca431f9255de7cea078cae8496f0a3a058e2583602f902390149849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b4bc07f8765b668852601d284d246dbd67c023bc1da388d731271faef33263656fcd1fe2a802b05783945d4c36fe9c1c71752f86d8c885234d61f4b52fae327704e7077818f1d7d89fa63fc0832b1ac7d0d983b7e8f9e7e2b8f1a7aa4c276bdee8c476bb69dcbe9a4af4cd65265b53a8a1c5df99123653e583ae510e81341fefcad79cc52adfec7aa2fea4409beed20fb4253bb683a7cf772aa821178dd4e4b64a27e7fe6f5688081767d606e6a17c36d1a8271eab6b7fc2ef47c2306091e40a611686f88b4b1efb63f3d02102a0bd8872ab8be325fef22fb6b35d9cf8ea8d81a6ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a0ee26138b2c626e50eb95d85043c2eedab9a51e429fe03fa7f1ee2956fa05593ca07ccab12aee24d902b64735a09087aea4059f7dc438a34a6759976d527a76d1aa02f902390153849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bae968bdbb6945b789b93803da45a62ea16920f45fb69a3c0f91dbd9c35f10aa8fa0c956d059f3f9cbec5b04253f00f73060de3e9b18b8f5646fd8ad61dd19aa96c86c2577bd18956cfa3d48129259a335b791f89c04f972380e60dab571b82d28da992e0e4bddf6c591952171335ccbc862d64ea0db7ec6c4a3b5873c74107c1ebf7682281fdde94de5d590f2a34b1a7e7b5c33e28eb1990fdd48d066f3818d1276ba5cfa6cacebec4c356545aabbfebd9579bede1231b857e2baa7c83e7f22cc71f093cbc8098834ba48fe552a93d701ec4d36b6a097a496858db8cdcd208379ac0c400cb6837182b745f26fac1e87ff6eded4c92365a9807bb2150ecbc7121960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a066369605683b3d99e90fb7be670a7ae76c0890e1170665b726739f5489e175f3a066c9dde909ff63f6c60364c3b42ce9e7f160da600ec71072f7a20a92a7598c8002f9023b0182010e849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b480273f77d83ecdfbfec5b57cf43c69c82ae5725a3c98940331ff61582e6e71a4cea9dc6c2e8975fc0679486c80cfbb363afd3bb163cb0f845bb065b802d3a5a67213571b553445b9a52f7cc984e7c586c0daab4dc9acffe9c3fa975c8dbfc443c5048ea9e29bc7acdd607d3ad8b52911abcbc85db3d3fd35bf96610f634fea8c082e8d3b33f23ead586b0c03120973438415a1548113ccdba2873096f347582a27e7fe6f5688081767d606e6a17c36d1a8271eab6b7fc2ef47c2306091e40a611686f88b4b1efb63f3d02102a0bd8872ab8be325fef22fb6b35d9cf8ea8d81a6ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a064e9877e59512565130384dc762eba575f0247d2414c8aabee3ffc805720802fa06a5e262396ec79b96fd3075994bb3ae433f682ce86b9216a595cd75f075852db02f90239015d849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b268af0d6d315ea9c0d5c6382fc2678e91bd74cbb19f75c972c34c6987c7eabcc4cea9dc6c2e8975fc0679486c80cfbb363afd3bb163cb0f845bb065b802d3a5a67213571b553445b9a52f7cc984e7c586c0daab4dc9acffe9c3fa975c8dbfc443c5048ea9e29bc7acdd607d3ad8b52911abcbc85db3d3fd35bf96610f634fea8c082e8d3b33f23ead586b0c03120973438415a1548113ccdba2873096f347582a27e7fe6f5688081767d606e6a17c36d1a8271eab6b7fc2ef47c2306091e40a611686f88b4b1efb63f3d02102a0bd8872ab8be325fef22fb6b35d9cf8ea8d81a6ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a00db24ab17fced436faa46067a737c1d9e1bf627e6b300431788736984e5133daa05ce898f66c9f0758f45562dc5b30f3233b8da1edc5eeaaf5e59f0707d1b86b3002f8700136849502f9008504dc3b2a048307741094f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b8084118aa48bc080a0e4434142219f93de767bc20bb10004a17f411a28620daf16d8d02dba9bd25364a07a85ac2afdd34f36dd581789b6b39a2051f3baf0dcec3a23d13e8b2a5635eb1e02f9023a018187849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b253745fe74841d4e4ac09a0eed34aad0ba7063d50297a7ac47eb8be585eea20db98f849432cbf66b111e8394825ed2b837ecb7f41d1646f1eff21736b5334162036c70f758b841956492bc4af99d8efbd1d353b0c3fee9024829a2e590099869c4f25e0ba4cef2cea3b6ec94959895c35959601869ae03e3958a91f1c03550258dd36fcbc5833f2116232785f8359d2334dab78eaaf7968a293cd28690e1a457713086cb817451ad27927dcb997da99d54ccef967bb535cbdc21c283e71b2810b3d774843f2f704d4b9b833718e9a22df645e4ff2dae134c84af306237fba47b5d2432a83ea939195e27b727120240cc6fa83ed6cf36a74616a2e8b2e72d5f4736eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a011fa61982e2b6f68317022639803d34b77246f55edb312a16a3f306903906e71a020e0f379c6afd1ce89c72a018077c6b7055b546eaf0c9f694854c53457c4ccfb02f901f90102849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b90184d2cab056000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000009ec5651812086878c3de7814746c26d8e3332ff4a9d154bdfb6455735a940a336dfe4989c3323bf53d08ac7450d979fc0a92f54dcbe3cdd51df8c6f66359bd94c0d3669e0708e9542665e4396247ba04d243c81b4479355ce2df33888c9e0b50504b5e992379c4d3ee343745728e612df3e9676a94c905a59be7b1f3beba3241d2fae1249bd417a9e9c0f5c8c8b276c9574b7637e276eaa4c8b23d4cba87debdd718652425e447279755764eaaf850248e059ef4df20260a4cfbfa72ca14c8fc9f6be2e818d23222100f5a2543c3e0133f0dcf5dc686d4918328b86adeb6d38594a82199b3530ac248b1c97de1e8cd1c656efab7035d8bca80a6e135c4bcb077797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a0fa1d65fd081a92db254aa12ad3da3735f6a5d5fbdbb4d088478302312e520eb5a023ab66e8c699073a0e98602ad3c591d69f45e183ee6a18e9b5cf641b06e6858802f9027a0168849502f9008505584dc0fc830f700994f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b88025bf6196bd10000b90204666c00aa0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000b3fb64426b13305463a1e7a926399dcf62a972d906ddfd227039fd904059a84ef41f58390de847d8c359cf9bc0958c2dbcf36bbb7c3b7449cca8aef7a09e7d470c58392730cd2fdaa42c05cb894af03cdb84aea7f4a35c29424107fd76ae911c51a000bd0b2081757b50ed135366091621048c5fca2e33c7c55aa995176b4a3ce9d69e2074a60ca8082feca2cf790323dcaee36ca7d5bd5a5eff1c785118da0e6eb4e297c388289f40331a599c712a7b67b756f84b98b0cb207da5231d4d3d29b273f11011a9233ef1fd6c504fc555bce333eceb3d1e4e8f69874b75f6d856d531aff4e550b5383b62ece606f193a21eb2ea67c3d75bb0768790978af2b6773f0f834887345df96f4d60b5070d09e1a56b26f122a3ae81b1c3c2a06b6a29f64ff580156337097fc727277780dfea1f31e0683a283836f3d0b2f2f7411b3140ac82c305353be4f2b4e862d9e60a89fb2a46014d041bd09a0460049099bbedbc290c080a07a64532afeca0bfe9affbbf65600ee754f80faf79f13b42dcd845cfd041f3bb0a075f8cae904b99f5b12bebc153bdf0c5edcb3d5fca4de86873258301129d4be7a02f901f90154849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b90184d2cab0560000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000097bf5a6885b2d7429c455eaf29234153bcda6c9c913ca79940b5e3e0807ebfa7ba16dab20521d795fe8776a851828db6d1bbe36d4a4b9d5733dacbc3d8fed57104fa671ec4975cb553cae2b81c79d8f9eb70cf1b92f092b041cfa4c3fbeafbeb33df3d1bbaeba880bb2bc076be02a1f7fa95773e25bad6614a5e98eab106fe498d33d04bcfa9df33b6b428b996bb338b17cf32cca2a3da2fc4b93b0db7860ddffb4e8f769bd74b61d12bab3416ebc55d41ddd709a109e5844c90d0b781d913615f86865b103c0cf0b5920cf393a4fac1135bb0bf631f329af77a883162d3c97dd4a82199b3530ac248b1c97de1e8cd1c656efab7035d8bca80a6e135c4bcb077797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a0111c7e84859964baa2edc06b6fa6f9defa1a5b8cb4e75e9d9d17fb38a79582aca07cc3430b9a84bf3319a23e686e76ed1f16f16cd00a8179865ec3c7e3930cbcad02f9023a0181a1849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000ba9760e4c602dd27940a9e99dc6845e89b0da73b91a8d7d220c324e7ba5a5f6a71ca26df9e94975bc73fc213764ddc22622e039696c7e0c2b3175f1165580121b6c86c2577bd18956cfa3d48129259a335b791f89c04f972380e60dab571b82d28da992e0e4bddf6c591952171335ccbc862d64ea0db7ec6c4a3b5873c74107c1ebf7682281fdde94de5d590f2a34b1a7e7b5c33e28eb1990fdd48d066f3818d1276ba5cfa6cacebec4c356545aabbfebd9579bede1231b857e2baa7c83e7f22cc71f093cbc8098834ba48fe552a93d701ec4d36b6a097a496858db8cdcd208379ac0c400cb6837182b745f26fac1e87ff6eded4c92365a9807bb2150ecbc7121960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0e49f7d431939d4121ade2c2d5c5305c92f233e5781a47e65f9b4c31b8e38c895a03ddd2dc7c4630f82d65292fe4e7a05c4a9015d0ab51477052b61e185e895e7ce02f902390134849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b9e195179ff8e95bc06232f4eab3a9922f9c9c159c617da70bcb1b8221df8c486a4e87da5f3cd6439c63304850ddc26ff8cccc529a66e950970caf825b9326a8e7e29d4406d11c42cf40059c11370050cd6a659e89a8d65ffbba46e8fde16f1c71e7e34397d88cddc049bc1c2deae4beb1f6daf6338d1f7aadb51269915be934dc2430025cf245b31b5c66f6eda28c3ea590926d25dfa31ae73b28855b3df709ce488754043fd18689e005d87631fdc5d396ed24155d873270a8c3afb2177c2487710182dc92f72c8293f10e2a921bc970f5bbc836aa36868eac1ddc8a894c17b9ac0c400cb6837182b745f26fac1e87ff6eded4c92365a9807bb2150ecbc7121960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a04103cc62adc5906a5d18cbfb8982a327284b20426191c23e3db72e952f8f842fa0526dcf1f8463a6875680c4517e22f4b1ec3cd562c55114bd9efa55a112d740ce02f90219012c849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000a144807997d6584b6db9d3906f3d8bf3ebb6e93cf62e2cc07768c72c054bac120bd5a9c7dd84d0729e06026bfc52156f2ff4c688d0772c189d0bb8130b6def69ce88ab91b9770265f314ca683a03bf93419fcd8923b5ce4c54c9b15825f1298efc8d7aa842f3c81ccb061b9d9632b65f1deea4736433ef39a978e12dacffc938f23975ade81aeb4467ee3d0584113a70343f675b0adc969dca2878343fe459c854e8d984320f8a4ac96d98628cad8909074f97538c2fbaed8c12d0a045e7424af04d2d3a1c94affb7c27d59d54a29768078ad34fe118e46fde6b86664dc8fe3a84c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c080a0196504386e10f44541112713f28995c40ea74f541b6c9927313b4883e975559fa043391279b8dee99edf06dbee66429dbbb307579f2b6578690edb9ffde96b20d802f90238016d849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bd30b9bf48329cceda119dea3f01831bb46dfe652efb3a3a501e05b463670bac484c3612208a9287153c12a75652aae497d5869b9da4bc47cebc6281444352404f9675072b423cc404548873e99867b92451d173905857a768fbf970e6cba68da9d1a33d161c334d6e7df7d8adf86043cbd67cd85a9388bfa83278f5c59fedc020f157a3d5a8bafe568e0c270de02c72665df09162a5e9547ccac29b07e651a10cba6d2ef29cccca4fa453062395770480d56588111f94b9615f951fec3a4c57be1c095839abad83fbb732382ce6110e4767327b558f173562c36e0250ac9f3e15d2432a83ea939195e27b727120240cc6fa83ed6cf36a74616a2e8b2e72d5f4736eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc0809fd49f5fdfd69de6d4c2cb9cdfb20975bfc3d92f06806b355984bbb83a99ac31a01ea36756d656fc6fda4b54fdec59854f3c8b9d4e77100ec45252ca171ede9eae02f9023b018201be849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000be25ce5b536a10b9e486afdb7cca97b1a921a3ea54b5817b9fbd8a536b45eb47cbab1dd0ad0d08b855d05aacbacd947e55edfb7d15ca60fbb7a30bfa624b089b0a1245429ffb23db20d43d22d8434d8742d14972cd2d17aed427b80ae5de6603beb6a4d068fa1b355e107c9fe663b0b9ad4b8969b10015a663d3a7a1b28f5861205fc71e2a4dbc946baaa9c64de51e4a875f07d87aff0de8dfff4952e38844850276ba5cfa6cacebec4c356545aabbfebd9579bede1231b857e2baa7c83e7f22cc71f093cbc8098834ba48fe552a93d701ec4d36b6a097a496858db8cdcd208379ac0c400cb6837182b745f26fac1e87ff6eded4c92365a9807bb2150ecbc7121960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a0cd27da49876e8a7298803f75e679e931bf9cda7ecc296df9151577d5ff4da639a0440bd3675dd656dc0370b7221a70fe45464d14b562176c59bac5fc916988aa2b02f902190113849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000a5bbf41a9b4e1e503a6b53639234ba2264b99c9376fac9b6d918af00a0d8a87171342eb4740c8ea34e3b16a7a539f40f960d2dde26312394459fd4f587b8fbe2258455ca6cc651f761854d33956ca947cfd79685afac2be6ae32a4ff488575c8dda2e154e736467bb805327a0d140d616f3ebb696172c0154db5c3258de5d90e5785172ed95a0482469ac7a2e8f9ca7401e3e0c0a071191f2fc3014def9f2d0a84e8d984320f8a4ac96d98628cad8909074f97538c2fbaed8c12d0a045e7424af04d2d3a1c94affb7c27d59d54a29768078ad34fe118e46fde6b86664dc8fe3a84c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a0d0f5f5a0d6221c7e65de0a505bb4fae7d7a2cad2f9398889bad687dda6326a3ca02074726a54f228a9154ee0e33da41d170214f4f33ec809a990a2d87d5380167b02f9023a0181ca849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b5b242e7609999d8767f55676cec40c89ea85b422dd7599b3c7122f8cd5d4b1533d03e0ac80904a0ad91ebc41879494e7e9b567e99214e2c9a8a11805b76648ef07cd927a8dd897d3afb0b2167f0d2e1de9f0d47fba857dda85be2db1dacd336884cb32035c62f3227097b2e8fa05af5711bf7bbaa756b24b9e4ca95852a216e0886dbe84053c9654ee909e5116cd040a38429581726d6d2334965bad30c3a657de5344c7ec1b2dcf94654052e24c8a40a725a9eab591376c8142f4dc6e5e7874286b4cf4b050097d14205264d5de8efa790b96fbc3b6ba991b67d2becd1cb8d3874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a0021a1c76ac35e3ff5396d5af9f461b674fc0ab8a42f273260e481338c8fc6776a00a3000b3486441540b09bac00ecce1be324d4eb90f9de9ddfb4a5cbbf5afd48b02f871018183849502f9008505584dc0fc8307639994f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b8084118aa48bc080a0e5c17dd0a22eb6bd4376cc26b2247c405e7bd8e0ccc7b7b3f0609e4d0fb57203a00306e3f7f733db17dbe5120d6617198257a50f9d1ee8acdba2155db111c164c902f8720182055f849502f9008505584dc0fc8307639994f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b8084118aa48bc080a00ec323c8e02ffa1c9662c9c95b3df3958600bf9e67bfbbecdd2cd46e13cc46c6a004c46d07cc33e41323d2fb37696c378b4f170b326ce75bf09ce64e0b2c98daef02f9023b01820200849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b87a39c8b7e5f9dc10afdc2c67e5257c43758017dae7c460d5daf57a7f6276c51c5065487e269107a966aa5e469d591ab9e888cd204059453a104ac2b99a55f110b2674d4bb65fd9b5b6199ac72e23eb70f63792e7d2fdaa0bf4b3e31c2ce8758f2ec770485d1e71d2dc41e25ac2456b254fde26eee6dcf840088fcee5fe4436e10369baffb808ab0ec10de3cb51ade4c7287c1fbcc49a59aa8bf99ac5332ccab699e64a1e835523b3c4155d0fd43d55d2385dd269e9b1e1bde75322dade668d366c3d0ec215d48641dc722bbc1415fc0d471cb99d87e39fedfb1e15ef24a4b92e09090a4240cef86f6c4a7c1c98ca76ce47f9feec130fb3dae8c9442a3806c505160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0c04fbc0a30a02d0bcbab88d417b383f426ff1c84c55fc0d7073f0de3313638c9a01f7a083e503b89146d894206acfcf18a3cb88c16a5fd4cee6d80c5743532006102f902390108849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b80c569c46b856131b126382ba6e030f7b3f759b87f720a674456d6755d1f5a24b6468af925b2394a35e2e3e1ee54816800e9d592fe1f45068baf0a2f2228422ec6d7a20354f4eeb6b73bdd7e8cabb1dee44801633fae171c51fd7f40c077df116a333744a55fbb0f40b95162d3c365b4afbb957fe0e95b6cdbd17d9ff3b3e76c72b23902eff9f9f3eff1f8031299f27d86f44118fa4a7341e7549c672dd27d5870f42c97662bb0ff7f0ecd7778cc5f0e1d56b8231ca6676e0d6e65f3c9525fbf66c3d0ec215d48641dc722bbc1415fc0d471cb99d87e39fedfb1e15ef24a4b92e09090a4240cef86f6c4a7c1c98ca76ce47f9feec130fb3dae8c9442a3806c505160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a006750235c1714758eaa5f92ac1c46a5e6eeac6b5744934fd1cfa9d4cd3cf9d64a00ae579f278757158137146e5f4374ca9929ee9d340a54e1881ef1f213208ec1d02f90239014a849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bfb3c2e9eeaaec41ae904aa3bc9d0d5b49eb063b20b3187ceb6297e37656abff1cf55d08484af822b9b13848571d27d615cd7ef5037b95394921ffb1358a730ec484774ff0d8e87f19daa4e351b6e2bbfc88e6c68633249b16ef63a48f262ba5d54101d8dd11bae84ddf0839e76b76987033ee3fc08b57f2a13e7358d9b5e48edd2608d423a97ead4a46eb0ad82db90b76ece811cd6ef62d5395c941d88881a33368fce61468f4a0753b448f8ce82ddcdf2fd716375a1fb922d174d111abd5fc40f91a6423dba6a49f6944b28d8c41eb2a0acc874bd9cf07636081f448771b2f66ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a079cf53b59af1bde296fdddd433dd7d8d10ce09a85691adde7c42ee7b79b8eb1fa03ec30a1d8af3787eb69b5f878002735f0a2f6ba81e7e1ea10991f47a25db66cc02f90239015e849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b445d9a8cdb60a5caa4fe1dfc012f339629f07313d4e1ef95511689da854b7d7fd28313a6cdada003c686f06769c868b2cdb91f87f1b82830e08688c06b5331b9b0505508a5c122df8bf221be2783edbb4ebdc48e50673ab0458e7daeecd3b68f93a5a2d61e1cc7af7e696d76a991d10d12d6b72995581c4a123acad70f715acfee087bfa77dd89688e6401f01d9e5ccd1bb547078d1439c8f63831b6d037c2ac7195d111bb22b6eae6d7433f44fd3ea2e2c4e9695bf742d66309e25cb78c1de5c71f093cbc8098834ba48fe552a93d701ec4d36b6a097a496858db8cdcd208379ac0c400cb6837182b745f26fac1e87ff6eded4c92365a9807bb2150ecbc7121960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a033b39680231187756758bfce5d51b30455c0ada11c099351001f2dae10a8fd5ca06d7505099177ede1c824bb28ce841963a1765f7cf2ef7c7ffb2da45682372d0602f901f9016e849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b90184d2cab0560000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000093e072547a5b4aba5cf10024062301bf2d85f5af06a86209355e7571168dc6f2f0408a04220411b5661403391c91d92d9cc01e9ff51a0a0590936f69bf61b09b2d6116199a876e0f6d79d285e590c7d49af25080d3baab95ec1be3822804a2304145d0284bbb5ff2ece72fdd4f2b20d42592616380af3ff67a5447f3efea78e537aff8cfbd92504b0719548d30b0853109a0defcf494e1d8995abfef7a4f90e269e0e6d9f8276753500114d8a5af3b36b875e5bc835dfa3671f71155bf7574694f6be2e818d23222100f5a2543c3e0133f0dcf5dc686d4918328b86adeb6d38594a82199b3530ac248b1c97de1e8cd1c656efab7035d8bca80a6e135c4bcb077797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a049288147adc66f9bf053dad49cc659a94b3395f33424722aa27ebc8f78247faea01d92f00518c8cd8bfc8d68bafe76dc19d6ab622eeb0e273d4d248a7d7c56fc6702f90239013a849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b121c5cf848e027dc4cc22baf95c86e160ee1ea9e490540d179cdf7468b8d6e334947192f9142dce43243f17b43b28dd9a392d834c0b5baa715164776cb53b2c1a5ed327e5b0d2f0c92a617b1e4a3dc03a39eb466d58aebe8780063d1f3681cc4610a1669643bd11695c4fca06549f7317186c0d289ae01671ba762c9fe5a2b179ec43392ff7d810d670be3bc309602b40ba4f105c85f591fc1e59193a6595ea88f4dac38243fcd265b82a58d8be3b0802d037e437f0b91942e1337467b6d2f2f11686f88b4b1efb63f3d02102a0bd8872ab8be325fef22fb6b35d9cf8ea8d81a6ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a03b44ed94d2cc0f76919d88a47ff45b09da7dbd9459c613e73ca67b5266ab2679a0422de4b36bd07e286a830bd994648df9ebf83225307648d7127465ca86fa182b02f9023a0181a8849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bdf96c03502ac2021b76c4fac9c82d85c0d6cca4aa2fabfdc51c807e4216cd51663c72e95718f1f25037a78765bcc4ff89971f8088664e1c42337f305f36ebdafb74ffd93a9b87839b9f21bba96a3420c2c0b969d223e76c6945b874ed152f4f7001eec81d4e5eb47f135bba800c40b6097f54d508e5bee8ee40902f5214c2f9d4d0c10637c2bd2e82fa5c75b6df67103185e90efa5109adda52320fc643f5bbb340bd88da4d4ad7f678cdfacab3a163c4495be773b266761f072b5775a65c45e6cb6b274fbc933d5161d201b57d1968b3e548233d94e0918b29e3246db24af10874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a017da238e7e078dea7ddbdc976d270f817a00a3f8418a7a315f533f1d9f12b46da040de95b0622ddb1b53d8dac977a5a3b9676a73bb7bf4dd09e852c5ee96a2d2af02f9023b01820127849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b07ed1d2191bb7a3ed64e9a7bf1d97c797e8831671f088561a8b9df63639933bf0ab5ce7f3fb0eedc0e8a8b19ba15a4a4a473bf444c0152bdac13f8d607c3ae23d9f8497304a240064cbc015bd4e60ef746c9d8c811123971b71fad55fa7ac59a22c21be9e8ec837d6b51c0241688250fdcb57bdd0a6c733f0d3e562e841affcfb2f94beea3333b68d58665b81219090d402da83803917a75e14745a56542d87e041322757cc78e51497468c963c098e84ae8e960e15f8345672c6d16f97f9cad7d510e7bd2727bec626207f433b8ee3cb02172d7e3d463087da63edb1aa1e51173bb78fd28784e7e398a646408ffcbe410c7c3aa32abe694422aa038737ab8e1960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0958f185c93c78720e376d511ecf23ad677bb69f8af47acc5af1a4e6ff4817fe5a057e677ea9a0ead3bb99716545976c4a5805b179b2571b1199512c7269a4fe19502f90239012d849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b182adc6a199c54c9ae1953e1d7f94b71f14e4a6cca6f8d2e2724024427b440bec479557d300f98e5daf459e6edacc62c9b85fbd9393c6bc8fbdfedb4f346f3b46aa8cb13e381a1d357d13fb1ec724f0deeb2e1d2f919d681564370c76af3a8b5372755e99db10d981dc9ae18b6f26f5dc24451a8e9565c4ae7cdb4570a55ac4506ef85f770c00923b222c953cd33151eb48190d06044fd1d00edbb3a835da2699262acbd5671bdafcc4346e225a5eb7e7f6ee95e8f415b78be64ea5425a447a46cb6b274fbc933d5161d201b57d1968b3e548233d94e0918b29e3246db24af10874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a07eeb31bedfeef057b45995886bcb8ec80a68e0ce9a195bc856719c7d4061683aa023d7a0cd41e78ac6fd1dc9075e518766681624305125fc61b601bd7ce35bc4aa02f8710181f5849502f9008504dc3b2a048307639994f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b8084118aa48bc080a0f5d783d2977e1a821ba8adff950a422a55c98999caa6600acc83631643df57fba003c29d02b81d86e1ac994402a27bcd7fa076345eb247a04848a151755846632402f90239011d849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b903c2f2eb04f87377c2ed1f36718548dcd779ae9eb8433560b246852ca4561625f5b251b1df35be913df44f06cfecf7323958074f1eb17f7905fcd80abc1f63054ba1434b8454e7240ae22bd2eb2f94ad43111ccd1e4a927be2c401b015e4c714e0056a69af46278ad2d07d86497fc282f38fddd53b343af77f221e2bb6dc660d82b8b3ec70cf0d4f465a96e1bc01553d96a727f5e0b70713858f708c2be46a39ca69f0224e93fb3d36e599453e3cc8205528fec829600637c27b4c7093ec8600815bcf88bffbf15080bc98a4d89ff43e0a6f9cecdd7c0745f45210fad4a5f1073bb78fd28784e7e398a646408ffcbe410c7c3aa32abe694422aa038737ab8e1960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0b36b32b2bb9d50b8f0c6909bce13c2432443a2da1eb82549ebd5b8bb9a8075dba003643bd8f21235959e80fcd5abff1748b7eda7caedb89b1ea3fc99f347ebee2702f9023b01820297849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b2f338c5d28e1561b5bfb18a55148735cc872d0659dbae842279876a05cccc647e6529ea5b0f07bb7369308d36d1525498b2c2bf2d0564ddce4c4080591389f5654d46cc8b368dcc4f62d1f9bc2f3d0e03e99c1f46974016e4495000b7b1d7d4a1c57f0d9a8a8c22575d9fabf4d02c345b6bd68689b09c0197c9be4aa8f1a239a10369baffb808ab0ec10de3cb51ade4c7287c1fbcc49a59aa8bf99ac5332ccab699e64a1e835523b3c4155d0fd43d55d2385dd269e9b1e1bde75322dade668d366c3d0ec215d48641dc722bbc1415fc0d471cb99d87e39fedfb1e15ef24a4b92e09090a4240cef86f6c4a7c1c98ca76ce47f9feec130fb3dae8c9442a3806c505160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a050bf305663e7d2add233ceaadc88a5b8d435ac52181a1605dfe77d36065f64c4a022afb2213deb9e8cf5e610529da6fed4a7816f494cf6fa22fb04aab406d6c02b02f902790119849502f9008505584dc0fc830661bf94f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b8778cad1e25d0000b90204666c00aa0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000bbfe0abbb6503ab9e7400b0e1d9de0cbc33573d8a75ed072cf8ef9e0fa457f6782e0ee19cdfd5d4aa2c43ae69617c5140d67c8a436e386a772665b3c8c645b8f9d6f3feccd53c36fdbad0f38877a3259633fcc7285f953ac34435d1891ad0ec0b7e8d1df7f43df2f18a71a9423fc8aae1d97ed63074e05600d58035407c78f776b783ed18591168ee2066e2263ed0aa999d8866ae3bb471d016b1dc974ea79021026c00d73f71e6c9fc7f99bef90d8e88819f37570ab36cc1b459abb88b7eabdd0e6c4248e722c42676cad5ee5a7c6bbcb02e787ea071ed40a7fa79765f9586ad39a965869d76c3a71d2c74451314f38fe0dfbaf382298368bccd25fec916d3c2a9926dfba95a258d32f0f4201888a0c5a15dc50be540b6d7a523548b99777c040b3111eaf415427ac74f8b8b68fc93df5caeb67ec32d8e4105883e2869c067a52c305353be4f2b4e862d9e60a89fb2a46014d041bd09a0460049099bbedbc290c001a0149bc403ea4d7f45a9fcbdec9de8af93729a51ae6916674e0e1b1cd67dc2b79ea076573c5932f1fc7c38a87397e37d1aea8521a8a92114c01707c3fb2079302dd802f9023a0181a5849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bbc449c7f482ef82b60c6199326bc233264f7f61dc3ddfe7551644443cc120f06d69c380e8d324476f552f9186aa830fdd9b68115969aaf77ae986bc1788bed470fcaf63cb0ebb1f9309c24c6272b532256e7aab111beadecfc1be208875540b483457c9fdd59bf72e5a8498937baa8ddf6b5ee96f52a4bf5501a41bf841b2bf18dd36fcbc5833f2116232785f8359d2334dab78eaaf7968a293cd28690e1a457713086cb817451ad27927dcb997da99d54ccef967bb535cbdc21c283e71b2810b3d774843f2f704d4b9b833718e9a22df645e4ff2dae134c84af306237fba47b5d2432a83ea939195e27b727120240cc6fa83ed6cf36a74616a2e8b2e72d5f4736eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a06a55fffd626565d28c2b4d87b6e4fc20d67a18503c3eadb024688ff67d9c0f77a043e28d618ba114eeb3d17cb74818329d7c685513b66ad8cfc9e72c95d9c8342d02f9023b01820156849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b349a4cb6c7b7d13a09cb085ad411debc49e232955ce48341b5bf53880d7b284ee4369aedef96cb9e4bcd9ce8c25fa6ac0defdef4768bc27f10219326463f0bf208efedfce135b509d1544040fbd8ad348cfa31a309529c40ad4a63a36d89b5e0de660bbf169d37cf7a3bdd83d271cd20b2c421392a7637935935b099529f9bd532c3f251efba7755180cc77acc723082ba28ae0b8b8ebce06803c6af580fcf3870f42c97662bb0ff7f0ecd7778cc5f0e1d56b8231ca6676e0d6e65f3c9525fbf66c3d0ec215d48641dc722bbc1415fc0d471cb99d87e39fedfb1e15ef24a4b92e09090a4240cef86f6c4a7c1c98ca76ce47f9feec130fb3dae8c9442a3806c505160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0ccba7d31b17978f14c2db12715df3f8683887e7bea899ad91a27bf340c63aa11a03d1160421ef0ea7fcb04a792fd37855ce9ba54f0304e6b73fa8999bfd5ad85d002f90239010e849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b906d2171853279c054680adb0b51f6eb7acbc322b770468f9893d89258e8d95ba817ae6b33c2ebff43503a6454463819e1cb790458fe2e2e1a3dc279b9c0a8ad763586ceb8a84db50636ac9e3378d9878a11b8cff4cecb6b9f77db2ca06065ec1b7b68d483e594b2b049a510108e8384fca4a98b0c9a65d353db714f1b624b53d2608d423a97ead4a46eb0ad82db90b76ece811cd6ef62d5395c941d88881a33368fce61468f4a0753b448f8ce82ddcdf2fd716375a1fb922d174d111abd5fc40f91a6423dba6a49f6944b28d8c41eb2a0acc874bd9cf07636081f448771b2f66ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a045bbd761da9478a5d76c6b39c22a17b9eae74c4d1570b3ebe2bc2ebb8164c4d4a06d58bbe87a425167aef39bcb91e2082ea8566bb172a198da777fd126712e0d1702f9023b01820106849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000ba6c70f43acc6c77c6d1c8c345547474284cd18961c4a95598ffa397576a4ea527610130a406b6a70b336fe19c1a4ce2cd310b55fe5ff19a78fbe1d2b704307cf3cbb7597f785b6f0c91497ef907416efcaf5b490aa7f12240f77717abadbd7207f8689d4bc597cc9887d741dc8e640862294a68415d5a2641dbf00759a40bb1611d6828e7a5c6f653304a5dee69fdd27a099b0c728730fada01b02c727025310eae5aca00e946d9dca1871117bf328bd20f5f7bc1f5a7e9e3e497e42d3ace8080f91a6423dba6a49f6944b28d8c41eb2a0acc874bd9cf07636081f448771b2f66ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a08fa45af8d2f0e9dddeabfe8d81ffced0380cbe15cdd3e7ba8ddd59927d95b3f7a03883786120c155db5094be77e541b2fc8f0da6085bb3450b31adb0646c4d473202f9027a014e849502f9008505584dc0fc830d2c5194f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b8801e32b4789740000b90204666c00aa0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000b02a6cb215e33e1ace2bf5fefb357cafec198261c800d0de79b03f3a9016fe0f71e8167db33748d73426a91f80336d1543be592d7ce5686ed10aea58c47e6ae7850f2a721c2fbd607e79faeca33c529e6b4f03a4afb8c9b03c5a94cd5e80bd0d6fc29ff3bc9ae3fba105e1a9d95f944928acadd6f9e512c4257e5a5107540b0104fb71290dcb90e62e0ff51648a36d91bab3e797e7b2309c7138af733769be539026c00d73f71e6c9fc7f99bef90d8e88819f37570ab36cc1b459abb88b7eabdd0e6c4248e722c42676cad5ee5a7c6bbcb02e787ea071ed40a7fa79765f9586ad39a965869d76c3a71d2c74451314f38fe0dfbaf382298368bccd25fec916d3c2a9926dfba95a258d32f0f4201888a0c5a15dc50be540b6d7a523548b99777c040b3111eaf415427ac74f8b8b68fc93df5caeb67ec32d8e4105883e2869c067a52c305353be4f2b4e862d9e60a89fb2a46014d041bd09a0460049099bbedbc290c001a0f0974eb37bea7c578f65e0ace146885edb83a78f7f5ae95e72a8194085a84ba0a06ebb98f53dd851411042fbaa7e3890c408eb02646f875b8e344a088f182028c202f9023b0182028f849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b192be21af03104f15f698f408b92e792e97ac423bbc02e155eabb9e57f7ef5e777e86856ddec6369e6ac57dd3c7f9a3036a68642a2806f383ce9e773e79bdfe72effb8e3ad39dd45b385949aaf317896b146f8b2611470623acf370ef5634258ff0586c654c72f961025bfaa62fef509077af2d646ccb51f70f8d002a6f80bc74f248a910747a8e9eb820a3e41030a74a5c855ecf46f86dc3c7a59e806e65db57195d111bb22b6eae6d7433f44fd3ea2e2c4e9695bf742d66309e25cb78c1de5c71f093cbc8098834ba48fe552a93d701ec4d36b6a097a496858db8cdcd208379ac0c400cb6837182b745f26fac1e87ff6eded4c92365a9807bb2150ecbc7121960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a082d10bf9ad048e149f86b40d651716dc575c6e432dd33d65b0827288ade32b12a02008c069232d0f367e5d4f3fa64c5191029cc0a169107fef70331b552225283902f9027a0137849502f9008504dc3b2a048309c71194f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b88012dfb0cb5e88000b90204666c00aa0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000b77da39b06700604f523119bd39f568578f77ccc72088e81bc722cae56ce8cd74c5f21cd8516cae6f90935772532a1a0e8ff6e33be48caafd42d1099c75d4a1cc01f61c56d5e9b2b79da5bf140fc55961d3461d111d360b7cecc4ccd0f9e3049f483339e45ab04599c7014877befcb5ee8e104dbed25ade1f8f3fb5d4f30d8845a2a5aad360a307d5930a4ee4c6439586eb0878524380d9f92982536e1531b5059a79ca6f5b4a75edcc3eb4f5e0cd734ae0b06dca6f0e4b95ee9076cb4028b634807945d7130a37d08e2f6c812321d3c7b9b9196c153b32a4653efd3e98b99a8cc49b7ac174619d63a74f86cc044e6d9556ec1756f43a328339e0259ca88389d559fdebc1c39ad3128408e4db0d31128419114442f0a4b7310299e7265e628d02580156337097fc727277780dfea1f31e0683a283836f3d0b2f2f7411b3140ac82c305353be4f2b4e862d9e60a89fb2a46014d041bd09a0460049099bbedbc290c080a084802fa9028a9ffda1c04ef8ea5785c9a555f5e98ed9e066595dffeac84e2f11a04c1d0aeb6ff3363cea419045fd34954e5ec9a3333f9dc7bccf61c76ccf99d6b302f9023b01820120849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b3bc11602583ea1e8bce07d80cef2263c106604925949cfff4d34905370b679bcc0ee7e9ca63710a4e4f7c23dd3a253bdb7a947f63f3dca5c2bcfe2e92c76a2ef84ab0613cb4f41e87211826ec6c92e1b737a990b879c6647c1035cb76ea886cbdd0ab522f6aedfcbc363c0e3286f3994b4b479a42c313e1c18da47923608bd8a06ef85f770c00923b222c953cd33151eb48190d06044fd1d00edbb3a835da2699262acbd5671bdafcc4346e225a5eb7e7f6ee95e8f415b78be64ea5425a447a46cb6b274fbc933d5161d201b57d1968b3e548233d94e0918b29e3246db24af10874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a0bc321e25f8cb3642f452c856e381d2c812e52e8eaafa363ab076205c254a3467a015d3a1e7d44b818fe33fc73c2c683ff3ffd3fc24dbdc77863da5a304973832bf02f9021b01820242849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000ac59f4f2995f6d588b90f13e540db16b42e3b076cd9adf48fdb8db2032b3cd072d09efe4697ab684e6f23c9b25256c888b6361ae132a870919c84b8f8159fd37658455ca6cc651f761854d33956ca947cfd79685afac2be6ae32a4ff488575c8dda2e154e736467bb805327a0d140d616f3ebb696172c0154db5c3258de5d90e5785172ed95a0482469ac7a2e8f9ca7401e3e0c0a071191f2fc3014def9f2d0a84e8d984320f8a4ac96d98628cad8909074f97538c2fbaed8c12d0a045e7424af04d2d3a1c94affb7c27d59d54a29768078ad34fe118e46fde6b86664dc8fe3a84c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a075138cfc203596c94dd977ed1908c4f3212850541c8e9a2aae75424705a16e50a062cc6a08137356a9b2fa5e395121ef0311992d3b00e02185b9f5728003806a9702f902390108849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b1e0effbeaaf8ba98a40ac381d452166279b828ff7b90308ac4fa2ad457997ab82f505b7ddedbf41636e46b5d284b4c2d74e8144df42f051e57ecdd4d7f76c5fa43d9140cb52d57bbdca10e423ec665012fd616959311e3f04e7db9acff9a9677a339276aa6533a11ba146862d6531fc5eabf801db09512a75f91a040303b5ec89ec43392ff7d810d670be3bc309602b40ba4f105c85f591fc1e59193a6595ea88f4dac38243fcd265b82a58d8be3b0802d037e437f0b91942e1337467b6d2f2f11686f88b4b1efb63f3d02102a0bd8872ab8be325fef22fb6b35d9cf8ea8d81a6ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a060184085bdaa3a53f80bfb450e4db8440febe9e4db096d09364506a2e0ac332ea01f0340a8e64668e837b9773ce1fc587aa9e3eb51108575c63d07cd7797c4851602f902190151849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000a8f95379893e1e544874c9af7352ab8d23a4a613d1328f0952f87aa00685e08385995dc38d81db6576107b1165a2c9ec54e45da5b959ffcfa0345c288bb826605e8e63c8a5b994d2a2f50bace168e2305472e12c8d87fbac40a913f00a235b4825d88d7fd2b74ccea50449ad3d5dd2baa127ad9c2a856eb50e33387d689fc2d4978f72220d7b7561b7edac075fc4b95c418f9cbba0c5cbfb7332333436cd3a6866c6b4d327b382242e1b3d577ebb1f93bd3d4012fd971b348f0128322b993929904d2d3a1c94affb7c27d59d54a29768078ad34fe118e46fde6b86664dc8fe3a84c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c080a0404336da3e63daba9642c41a2d26d955067746a9778520da4487359aa3b799e4a05a57c7292c534b7b8a222bc7052fd96a686ea79ca419b792c6a412aa853bfe0602f9021a018197849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000ab21226e3c37482fe1f91559edff3baae40232e8bc83e135fbcbd176b3f009711139dea2b6989b59d211ba65a8211521e49cc87c2eaffa6910bc5e904291c43050ec2ecaa5b4decfc7e9a38ebec4a393a8f65201cec3eae362fba0443cc6ef3b892c41e6f679c59d57c7581eef926e696483ec17096750a2c3afa8ab7710596637d5e5d9de9a0bc0b6593d1b691e70105216de2cbc5e8dae6e4bc358c4c0c6951cf2c918cfd27b5174f472afde4336532960910721cd7680ab2a8634341ec8cd62e80a0dde9daae04d4d607589027b4a67ac9ce47b5db4026e967ccd38695dcec4c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c080a03bc093607adf861fedf9b1aca5a5fc7e9861d417fe4d78f59b949c3fb8d0db26a01d67d8ffd86d8815cab990f5815ed8a602e7f95ce434686b0ac98d989cc7bd6302f9023a0181f0849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bd2b7fb55765a501a4710680a4795eb8a01c24982b604bdab082ff5c02ea70897b7f73103a1adbb8f5bab0cc68cba212dd9813caf38481af11cb574b92a9ebe0898ace2a74d0456126d1ad502c2de95af6b8eab564e6559fe8e9f3d1de106d6297cfd35718e2c586ff9a3fee7bead78c979e84815e678e9f0833f8782898c03fc228b2bb2d8a4db141f93f7373bfeb3ada6c15c980958d2bf5fab8a12e721de77041322757cc78e51497468c963c098e84ae8e960e15f8345672c6d16f97f9cad7d510e7bd2727bec626207f433b8ee3cb02172d7e3d463087da63edb1aa1e51173bb78fd28784e7e398a646408ffcbe410c7c3aa32abe694422aa038737ab8e1960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0150a03b0516b4d0ad0dec2741983111bb5fd62844695a486317e992f3af29754a06f849d344f59948770db4eada4792f4bad0446033d2a0426d88a0b1c0f10af1002f9027a010c849502f9008504dc3b2a04830c1b1e94f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b8801a6c5de98458000b90204666c00aa0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000bdd093885259c841906b374ab78dc35c8df0f79421494be35cb4f8bcc7166f4c03eccf109238d61e8c7a56af992a4fec84a8cad548e0cb781e6725635d6ae72c46515dbb867f6bd1be0f59b01c41c07885ea470503a55947c6fd33acd464df0f7efcd1056603d54d8d6c2c5b6aa2cdabb33a647aa45f6124f591e9229c6bcf6fcf259d00079dcafd62312e89d4a187eef89e7a1524f6dd0a0f56cc4389285cec3f97f469d19b96fe2d0a5a376f0c301d6ad73e09f0cb231b8e651a000542f655a99b39153d3a57af32bc15af4a9877513615fd178d4fd13c7f10b37e9e7f19cad2fe2469d715f1ebb609042d032d33b50954dacf341820702a87e360fb2f411c3b82cc07d0dfe58215e406ad5d7f66358ed9f78cb30a738d01574d8a1eb14f63c0b3111eaf415427ac74f8b8b68fc93df5caeb67ec32d8e4105883e2869c067a52c305353be4f2b4e862d9e60a89fb2a46014d041bd09a0460049099bbedbc290c080a0b6829e905230aca49215aa176ff1b92cc6d7ba84f1800fa829ed26cc3b81e905a034e9ab04fc705c9d1526e50db43c25f21fcee00bdb44c1c76e39952ffa9e3aad02f90239012e849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b9d9738ac6120e944eac178a41fab5b252b344476c6fcca672ec855d87f1f42395ada051bd4e2d99dc71b21c0a2665805d75e2ad9204c59542b65ab8a1ca71aa0a131e56abc67a32704e81a98b22d65a6276d2f9a8a03e325a0023c567bdd37cfc4c24f71a01124f80059778e0bd53eca71672f38ad5fb96a5b7c204d7497eff44f248a910747a8e9eb820a3e41030a74a5c855ecf46f86dc3c7a59e806e65db57195d111bb22b6eae6d7433f44fd3ea2e2c4e9695bf742d66309e25cb78c1de5c71f093cbc8098834ba48fe552a93d701ec4d36b6a097a496858db8cdcd208379ac0c400cb6837182b745f26fac1e87ff6eded4c92365a9807bb2150ecbc7121960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a071f8a808f043b3656740549cdab840623112a13661dedeadca10bd4eb8b8491ca015a2ab03256714732ed844a83febc459a5a2311cabb8488fc606bbddc25c98e202f902390110849502f9008505584dc0fc830536d494f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b873c6568f12e8000b901c4666c00aa00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000009ed7bc36201af9831e4109b2e6ce7e1493ce77aff577696c33d8ffff15f9dcf8842028f4240045105605fbb13aa15f5f947efcde8bdea0344e203e3398428b88e12db2312bad4e1522b05ee87376c7d0423514c01d596d9fc711bbda3820948b86095f09fac1750a1299afd7756276b3c80164724261e191a286646bb11e788c487ed5aea3957d1025ab4bc6e0ad39d08c682797bd722f06c23d4bb7b7c572243ae1a9cca5c30e523b9d83f240dd6a0998bdda129161fd1ad97116058c11333295ee729d1fbc588c4c7c999c4766ad87c8480fe07dc39896712ab7d96a8917c1ff5059536d5011814734520e7d1edbeee0f311d266f22cc441348ccee2ab53f080442ba98e5c54c5b145def40caf6cd211fc48522e8496808d921817efe59c2ddc001a0c4a3012666544725c75a2f7448c808c786c488d7ec9ee571422dbf08eab37253a0503cb918fb568a42ddf25f07566d7d82f1aa45c587e16752d92819149152324c02f9023b01820191849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bb934d3848746045f8eb77f7f2fa5a85a26fe5ee3b85c3f390dd6020bf9d880d2a9eeaf286a1b3c42854a642ed1b42d38f6d5c47d5e3ca5d9d1a83eef4edc5d01562f0398d9622d9871ca546c9bc04fd3e0284fbf1d3e94e23b25d33908a3763b22c21be9e8ec837d6b51c0241688250fdcb57bdd0a6c733f0d3e562e841affcfb2f94beea3333b68d58665b81219090d402da83803917a75e14745a56542d87e041322757cc78e51497468c963c098e84ae8e960e15f8345672c6d16f97f9cad7d510e7bd2727bec626207f433b8ee3cb02172d7e3d463087da63edb1aa1e51173bb78fd28784e7e398a646408ffcbe410c7c3aa32abe694422aa038737ab8e1960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a0fe4d1ac3270a64e8209aed0225c974b3f43cd355f5450b347e9ce74ff0d1c80fa04af09b96678fa3bde5ea22eff7976847b07d35b16ec7a9742c827ef03901328002f902390181c7849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b5319209db727a8495daf464b1b815b6fc4123d4bc203777eb7f69000eca2ff6ce9b9dec06f69dfbd8e4d0fb4f2de4337ac0959520b4fc922594291cc6bd4d8f85488786bf24a5c5d65828f0e06053bbc0996b736deb973aeeb23128bb88a104cf2ec770485d1e71d2dc41e25ac2456b254fde26eee6dcf840088fcee5fe4436e10369baffb808ab0ec10de3cb51ade4c7287c1fbcc49a59aa8bf99ac5332ccab699e64a1e835523b3c4155d0fd43d55d2385dd269e9b1e1bde75322dade668d366c3d0ec215d48641dc722bbc1415fc0d471cb99d87e39fedfb1e15ef24a4b92e09090a4240cef86f6c4a7c1c98ca76ce47f9feec130fb3dae8c9442a3806c505160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc0809fc9dbc9ebb3452f1532532188a80b0da1466fce6e55faef3fc7fc3e6859648ca0393acc8e46da3886c3d8ab6e3d93d98e107ab4ec8bf26b5c43c9f3ad0ed3bcd702f902390140849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bf68b9be164945a666fe9793d30608f8ee3b7682d0f682e315e79bb9bd3df1713b6fa8af49a6e6a212f713126b5d571d8bb1329725f4ad32b9cfe44c591c68edfa4ec0a46ff472ddbb9141ac68bf1c628d9e46b79e1c4d6127710ab0b4aae94f2ed0b910363c1cb92eb8bef7ab5a06b234ad901e11395512d06a6f436276a2fbbd52ddb6ab5cb993ec2fa6565b6acb4a3b2be53c89889879b842a760e955428b1713086cb817451ad27927dcb997da99d54ccef967bb535cbdc21c283e71b2810b3d774843f2f704d4b9b833718e9a22df645e4ff2dae134c84af306237fba47b5d2432a83ea939195e27b727120240cc6fa83ed6cf36a74616a2e8b2e72d5f4736eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0cda9c23e9d7f3de188c87c56244fb9c6a6eff4fd080eeca282136b978aff0e22a0232b40efe9022f87e91c1ebbbcdf55ab154f2d34370c3ff488efe7292290a2b002f901fa0181e7849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b90184d2cab056000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000009351c5292de890b0facc5fa47f9938926f413801f89aa99b6f5f59a74efe64a0b59706ce824bdc1e4eac690978c3d7d3e1c3e634f0619768fbc5c74c3fb9ef9efae950b037ec9cc2893a196a0c810ad707bd7c9c8e864d9c2106f2df0fd83998299f9964d85040a17ce86723df848a5d64c69a5125c129da9f5b6a2660d8ffb24c2ddb7742c518e54f59cb8da916bfb3a1dc82106a1494f7342262c6011ef8bc7b4e8f769bd74b61d12bab3416ebc55d41ddd709a109e5844c90d0b781d913615f86865b103c0cf0b5920cf393a4fac1135bb0bf631f329af77a883162d3c97dd4a82199b3530ac248b1c97de1e8cd1c656efab7035d8bca80a6e135c4bcb077797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c080a07a0cd0ee4cbb596d86e0afab290833e5a2fba1cb87602ee19403b1dfe5e1571ea04f7be63df987dbd8ff75ab5904428546b1f435e5d74d3bad73f0fca8c5aec26e02f9023b01820189849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bfbf0ad04c6fccb6a29b0738584ed3e6ea1663a7bbe8aa00c508a63f8f279d49a727b3eada6738b17c9859fb57e105bda160625bd5cc7b2cb16f9190fd90a0d61b8c2d912ca68c1667a783dea6a8b6f663a83e7de3a5141c90624c3d78bb674c23c5048ea9e29bc7acdd607d3ad8b52911abcbc85db3d3fd35bf96610f634fea8c082e8d3b33f23ead586b0c03120973438415a1548113ccdba2873096f347582a27e7fe6f5688081767d606e6a17c36d1a8271eab6b7fc2ef47c2306091e40a611686f88b4b1efb63f3d02102a0bd8872ab8be325fef22fb6b35d9cf8ea8d81a6ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a07ac8fba7fa155cede49fd2363e1079770cd98f140376c293bcdec38a2409eeeda034aeed13a0268a6772d056d7f2b66ffea08a4d1aea9478d39090f0ee465a22cd02f902390122849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bccb917dab0143e188980116c7a05385e7ccf1eff9950d1b6776155473e896d8010627d473a34792965a02c9e7c4c5712bd1d0a44045ded264f8bfe09d661ed6bb68fa861bb27e3c3399c8619ee1a6f852d98931285684283e2aeefe7797b2eaf0e3f9ff8fe75329deb87f104175beb3ed4b66bc012c401d52bb97b16679f9872b5519ca5ce8fdb54347e86127447cd1be7aed6e72f53e763ea703a78c9fa1df6ad846c4b85e9b0b88abfec7daf9b81d6d43d2fddd1fb323e1d8ab86d248a15a70a26c2c2ea9612e28d0aa9296f80336adcd076167b3fc1705448942052a9852eac5912b920cfe151d881ecdfbd81e708a6fc74fa4215f00e3511a5ac0f229adafc56676746ed65e7e0cb2e85384b58a35f638c6fefa696d8c6ee519b7fcaaa602c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a01c4900962deec1aec84926817e8f8493ab6164de562bfb576584b538e66c3a31a0604dc7da2bb010db10bd1175889c413aa02774c3c0cf463993f92699d94c9cdb02f902390156849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bfc90e0f154815f8a29b179473b6d316b83162c600e0bcf697c8ae0b007705a204be1af990f7da72d6d4c11d2120eaae40397087c5b38e9dadedd8eb81c2727b69012c5df556034a8971588cb55eed2a1ee7a2f7e37e6692714f6d1e69b393893666dce4fcf2dce3d119683aadeb1ea17923ba5b074391c1491f124cadfe4b30ca443a479748450adaee230a98fae2a7f7e83ae41978a4a06a7e255ba23e5c90663e97180e1ab3461725b593d992b80fe8cdbc1939562c814a2ca5d174874eb00286b4cf4b050097d14205264d5de8efa790b96fbc3b6ba991b67d2becd1cb8d3874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0948fd52b3bb4082ed696bb68b36743496939723fdfca99da14fa78a37eb5c1c3a02f2dc0198ccaff741861c4ed494de5137f37f1c0dccf80c9dc0086bfb971014a02f902190118849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000a8f8c55c60f1465e17cf0dac288a4ddee932c230befba393a6674d981c7fd809f920f8327edcf720fcd5044e0d802f6d5b0195deb3c23fe4c56eb007c601c074a61feec1dfa208108f700f4ceea1a55701ad87f2f8acb3a2d3d79143df7b1539bff5788af8ab01098f2cc2e8b1892fa4d883cfb0933cdaf370293de3706cda345ba63c0fdcdf7e22d3e03dd751a495249339c2dababf333a1bc91f55cf6fe5c84f2b47b4054697932573645ed95fecb78e83ad418cbe402f3f956712ce9a9e4f7129106175d04ef2a2bc0df351e0cb830acfd4971f7d420775d642efed0aca938ffaed7b71e17931c50b3e99ec666f5a3bc118c101dc25a2118045b917db2f8ef46007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a0a5982f188c00f6fe238ca124447787cec83059eb5dc457d67034b85a0680cefca05306e8cef3b1e361b586c12d5a5d9b7b0d437f47a1c16419c4f9f99e1c37429402f901fb01820150849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b90184d2cab056000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000009d81502470ff9c963887cb3ccea7b5acfad742c83e857c7e311063e7da391d9bebdab5e17a0b1bf73cdd6810a02572433be3297e1cca118d50b0578edcf8750864d074d7c288e87c7c83ac94218e37c893dfb593f959781d38ab7da5c144a1b24379c68415c9beac8697de0b6e09ecdeb979ed4dd950db7cea20f0ec251cc3c7fed220f04e94ab022c296ae9584d24eb79a4ba3b814090b8de476fac2b8526ce49e0e6d9f8276753500114d8a5af3b36b875e5bc835dfa3671f71155bf7574694f6be2e818d23222100f5a2543c3e0133f0dcf5dc686d4918328b86adeb6d38594a82199b3530ac248b1c97de1e8cd1c656efab7035d8bca80a6e135c4bcb077797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a051ddf4512ca6ac4eefeeb4371fc6e22ecaaae0568bf5299d46234b271f5cf6e9a01e76ee6ff7cbf9955d26ec76f3c11f13c40db49f3b8db6f7888446abdb4e643502f870011c849502f9008504dc3b2a048305201494f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b8084118aa48bc080a027402e479c09139aa643cf629030dca513341df7f8aed926a4671a94305be9e3a01d0efe795b4f363453a17010972b1dc989af4595253f47764312ec92306ae65402f9023a0181c2849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b5ea3874fe4f38f62b587b6a387ba3ac7e5a8459c1eef220a048b114fe536a3fb7ecd4f21d4d14a5495dadb3013699abc4b23cc362804c9b0768006aca4fbabd2c9987d969ed01cd8dd7208d69278752fae3eba6623cf0c331b9bdea857ade7ffc60dee45982f80139634eb48ef29ed510cef4194d126df3067e2e592b00ef4b381187fe6585a6e1ed377fa861ed2d0615b0fbe526edcdc9bed9e83a78efbf9664f3c100a34a9d04f39f150dc0c7a2479e84bc1da4d18e2bf86793f4743a11ed3990b76c3caa38cc2e3686d9b8a1e17a60d7bcb6b1cdbcbe95aacb3a51c6ee097ac5912b920cfe151d881ecdfbd81e708a6fc74fa4215f00e3511a5ac0f229adafc56676746ed65e7e0cb2e85384b58a35f638c6fefa696d8c6ee519b7fcaaa602c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0a2d046417875b58e1e8e4018f746e2da1ccaa98ce6ff56a487f0ab617efd444fa04133041d67cd4e556610d0bf0ad31ec857084fdb332d942275edca83bc0b6d8c02f9023b018201d0849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b736dbcfa20cdb2287a9808ec7657b2829ba11837922d92cc4d9cf449ad132d52257a4b7defb1f68025d64911aba996240913d51dd59424fff1a9b5ff940fccaf8668f21a2b234d57bbba47e5900dff795a5171ad8b749533061769f9c69115d47eebf675830bd5eef572fdcc127dea194ac442b769290c529437c64309b792d220995c00279da55b3a30d1c36e178eabd25d8d11a07f7712acf5ff67bf8286d56efbea7d2d2578bae5493b49fb41af08c91de3e9cf196bf50d3b51a49e36aefe0815bcf88bffbf15080bc98a4d89ff43e0a6f9cecdd7c0745f45210fad4a5f1073bb78fd28784e7e398a646408ffcbe410c7c3aa32abe694422aa038737ab8e1960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0494d8fdb50d1d6db5c0106668bd8b3c679803c8022b8b5397fbfb535d88751e2a04f72f64424dba8d610462aebef88df50f53be5f0a1ba2b53ab7e71317807abd302f90239014e849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bf6c4ae558ea247e2d39c65d9504d2be857558c9e65a60d85e0669d3eabfb7fb6d6a068bc71fd59a0cc303c5361a41df57cd13288543fdcef1a77afeb8efb3b8e43d9140cb52d57bbdca10e423ec665012fd616959311e3f04e7db9acff9a9677a339276aa6533a11ba146862d6531fc5eabf801db09512a75f91a040303b5ec89ec43392ff7d810d670be3bc309602b40ba4f105c85f591fc1e59193a6595ea88f4dac38243fcd265b82a58d8be3b0802d037e437f0b91942e1337467b6d2f2f11686f88b4b1efb63f3d02102a0bd8872ab8be325fef22fb6b35d9cf8ea8d81a6ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a008fdd77e6a8de0efa8572e06c22b4d752bdfa1d570ceddecd2e3b04f75740402a04d4b87f2fbd7d9d82a9e6643f312bb442b021b242f4196414104c1221c3a862302f9027a0127849502f9008505584dc0fc831ad24c94f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b8804b7ec32d7a20000b90204666c00aa0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000b524e6ac95d0f43dc896b4d4f29f6ff526a499658c0cf540957ae214378a346de08f74729278eb26028e28268641bbbe48d5a9f972ce14b57ceccd9853dfaddf8e75340e2d70f4554b36e06e8005e03e95923b326b6637618c83855fecb80f93b3e765426b5d9fec869098c107879201cfcf9b46b720c5e85a5900ca1cf34a08fd2b863cd9579699eb73ffe847b0b0ee2413ad8c50cf5aeb80ba2bc8d6ac6de5824f2c26fb0812e410cbe97f2a38f9ccdf5ab072620536597f08b6359d4eb25200e6c4248e722c42676cad5ee5a7c6bbcb02e787ea071ed40a7fa79765f9586ad39a965869d76c3a71d2c74451314f38fe0dfbaf382298368bccd25fec916d3c2a9926dfba95a258d32f0f4201888a0c5a15dc50be540b6d7a523548b99777c040b3111eaf415427ac74f8b8b68fc93df5caeb67ec32d8e4105883e2869c067a52c305353be4f2b4e862d9e60a89fb2a46014d041bd09a0460049099bbedbc290c001a0862aa3a25af69faa7f8aaf4fca6b5649d326616ffa20063e63d5db19d7c31826a06d1354c38f2ae3ad87dd2ce1299ddd7f5b0dac27d9e1b97e2fdb71b7a9071ad302f9023a0181bd849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b6450ed43c962b62f21882083dc083ea34129b53516895cc878e9abb8f4c7f995726803b18ca30fae8c6d31f025acbc2ac026907d60b7bbd183337fe4c58a2a0309671924bd7d9303eb8d90875a726aa2335f1a0f5100e828c9fbd284ee480fe39ba171c6b404809e29f17bbded432e8fa50ed36a8081333b1061d9de19be10aeb2f94beea3333b68d58665b81219090d402da83803917a75e14745a56542d87e041322757cc78e51497468c963c098e84ae8e960e15f8345672c6d16f97f9cad7d510e7bd2727bec626207f433b8ee3cb02172d7e3d463087da63edb1aa1e51173bb78fd28784e7e398a646408ffcbe410c7c3aa32abe694422aa038737ab8e1960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a03b614bb2ab9d417dda8626399e8383e0d2ddcaf1c1e1508d4c8bbb6f90a35659a02977592eb5d9e77e00a80e74cf0947c71489d1fe0808aec5e9f4be49bfd2c57902f902390129849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b509c479da1cfdf235cae03cb0b0d3f65eb4f0b81e9d5f9bf176e89ddfe0205fb71afccf5859da1ec66ed180067d01b1bff1b37177ca54c76134ef14358c3b2b20e7d13802b59b72ff9369a97c88269d8dce4974e7410ee6abc7b6ed84f3d711c84325a1d81ae2f3fd2bdf0229e3a0dd50c1d144af422ec4a8d45fff39dd25e503bb3c4fe085120402b6902790224fd459e47fa185d821e298e45366306a5b3bc4a357aa0e28aed6f9b0ead588f38d4a27d852dbb4b90ccbf35d7d49dc3bfed3c7d510e7bd2727bec626207f433b8ee3cb02172d7e3d463087da63edb1aa1e51173bb78fd28784e7e398a646408ffcbe410c7c3aa32abe694422aa038737ab8e1960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a0a411715b0310d63c2e2015955c50beddd02bb63a71bd95cb381bddcb42103eeaa03822d93e3a67994ce143e1acdffa1692610f2c497c8b5fd891d93e8f796e5a9002f902790108849502f9008505584dc0fc8307942c94f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b87b5303ad38b8000b90204666c00aa0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000b3fc4ec8ed26a4da806635e13034c02e58eded96abb996b9c378bbd12dfe85885b899b30633e5a59c79eaec9be41238fd5938fedb5b26643c5a08504f3142d6511f65c1cda86ab20ac16bff32bfc16a23bd568ded29eea98811c181003a7183b1ebf64a9cc708236f9ffbb791461ca7d77ffa935b24505182f93c7e67f8713d70f6e010e4b636435cfd1e5b081a8db33357d2961259e7cca951e9cdaf9f907c98ebfce73347b9c0d0ed797e0607094760566e323866eed59825e458446db87d96807945d7130a37d08e2f6c812321d3c7b9b9196c153b32a4653efd3e98b99a8cc49b7ac174619d63a74f86cc044e6d9556ec1756f43a328339e0259ca88389d559fdebc1c39ad3128408e4db0d31128419114442f0a4b7310299e7265e628d02580156337097fc727277780dfea1f31e0683a283836f3d0b2f2f7411b3140ac82c305353be4f2b4e862d9e60a89fb2a46014d041bd09a0460049099bbedbc290c001a0acda7974f1255551b94a6edbb072026a139576fb988acb7f76c1ff62b4229933a02c244fc0bdc72164dfe43293d23e3908689dd3bf54af36936282a44fe6177f4302f901f9015a849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b90184d2cab056000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000009bab7ed09844354aaf2b5ecefc5b3fed83b28aabdab55b1dad2b333719b0753f4bbb4fc83a32450c0927d7845a17aee2da2b07a8d2fe5a8695e4615ddcf64202dfd536448de02a1fee53b81a5318442e9f21ed98a1618941e4ae9a5136a70d0e33df3d1bbaeba880bb2bc076be02a1f7fa95773e25bad6614a5e98eab106fe498d33d04bcfa9df33b6b428b996bb338b17cf32cca2a3da2fc4b93b0db7860ddffb4e8f769bd74b61d12bab3416ebc55d41ddd709a109e5844c90d0b781d913615f86865b103c0cf0b5920cf393a4fac1135bb0bf631f329af77a883162d3c97dd4a82199b3530ac248b1c97de1e8cd1c656efab7035d8bca80a6e135c4bcb077797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c080a0eb134968f04e38acda7583516443b4b3ce49d5fc59461ffda78ce403c4bbfbf7a0438230355f83ca37c2bb20dd210a7c879f48b2d934110c88bb46c8683efe0f9502f902390156849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b0be536cca05d0ec8beea5909b8db5534336be4b122f8ae2d7dee8ca651eb86afb6fa8af49a6e6a212f713126b5d571d8bb1329725f4ad32b9cfe44c591c68edfa4ec0a46ff472ddbb9141ac68bf1c628d9e46b79e1c4d6127710ab0b4aae94f2ed0b910363c1cb92eb8bef7ab5a06b234ad901e11395512d06a6f436276a2fbbd52ddb6ab5cb993ec2fa6565b6acb4a3b2be53c89889879b842a760e955428b1713086cb817451ad27927dcb997da99d54ccef967bb535cbdc21c283e71b2810b3d774843f2f704d4b9b833718e9a22df645e4ff2dae134c84af306237fba47b5d2432a83ea939195e27b727120240cc6fa83ed6cf36a74616a2e8b2e72d5f4736eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a026e25f11ea30f8a5c29eb876eeac9627f4a5778341a1205bc0f652850d6cec42a008abe8404931508e96ee78d5c366a2eccbfff587afa41470eb1c7dd72110bd9602f9023a018188849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b59761a3fc7b062d7e4d0bb51ce3851ce409009fe6f3e76f00783444bd32d9fc1b63d4d4ae6f08bc5d0c6101a7f3e2f56cadebc9ad4e5922c98389e43a1b93cc3266492525f26594a7c067520bbabf46f290b737fab684e8225ae40285821205eeb4fe1a9535342be73740c26220f0516ad12b3493db131b40a035c35e1cd14867bdd4f986da04a30804d517d664066aba62bbdb168a98dd71cd421edac215be7699e64a1e835523b3c4155d0fd43d55d2385dd269e9b1e1bde75322dade668d366c3d0ec215d48641dc722bbc1415fc0d471cb99d87e39fedfb1e15ef24a4b92e09090a4240cef86f6c4a7c1c98ca76ce47f9feec130fb3dae8c9442a3806c505160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a05f1de1956f80dab0d9a895ef0470bd5a39c9c72a69b8abe82fbf6514a8490ab5a070b548005ad200d8d01b845ae2fedf6a7065f7e50a5b785b8cab66212cfbe22702f902390172849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bf778df556336aa96bf90cd0bcc1db5b782067c734acdbb00baefe0be0c4436dadb89038ed2e4be4ff0a7bd5b26a8d6b9442e2f0cea03340a59ab725fda6a0002887ff3b26b70081e49de2b25e88b46087ecc29920eca9d892993071629981a113c0305a9a15f0a9def183e235512e7809d095ba5b9ba9f206885ca77a34e9a139c145f1a961634e373c2ac40dd183321dd17dbcb7435a0f7ba5c37f58120731c368fce61468f4a0753b448f8ce82ddcdf2fd716375a1fb922d174d111abd5fc40f91a6423dba6a49f6944b28d8c41eb2a0acc874bd9cf07636081f448771b2f66ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a0edfc55aa8960aa6b3b74a27c7d75eadbb8fafce5f2ea32f99a22195dc69911a6a05bd8278b7f3de581348aceb5b80f6913dbf6076c1c3fb15b0c727592eccb202e02f9021b01820166849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000adee82f3eca686a45deb0428e255230b88713436d28f81bc58cc564de8024f7f8a4afb97385d60be26fb20508b005b79f196600e207dd8020fee2b3e4800cd9d95aa826e3c73d97b88e2619248158f4a463d2464bb5fe08f8d6b8f1f7e3e42b2e9467c640a6e37406a471a0963268dad95dd69341812624eff05606d06e436423785172ed95a0482469ac7a2e8f9ca7401e3e0c0a071191f2fc3014def9f2d0a84e8d984320f8a4ac96d98628cad8909074f97538c2fbaed8c12d0a045e7424af04d2d3a1c94affb7c27d59d54a29768078ad34fe118e46fde6b86664dc8fe3a84c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c080a06fc35001132e137c9fdb90a709d08a3cfad8a9443c857d4c1eccae93c21a7a0da07b29f07ada192801b1d8657cea7c2a5d2cd90dd5427a206171c203f78f8335bd02f902390140849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b1311c79574584689df4b57ec9745e80a6febfc9ff45e46fd69737674759e7b66cbea32e7ceec669130e2b000490e0c91a766d3f479ae3b93aedb7360b405a9178189793f50123fdf85a781a87903dc36d53afb3eeb845913b10b17a98f3db77db18d55a2a32b5da789825058e61e42ce64907345e80c9f43440992add1ca403fc2430025cf245b31b5c66f6eda28c3ea590926d25dfa31ae73b28855b3df709ce488754043fd18689e005d87631fdc5d396ed24155d873270a8c3afb2177c2487710182dc92f72c8293f10e2a921bc970f5bbc836aa36868eac1ddc8a894c17b9ac0c400cb6837182b745f26fac1e87ff6eded4c92365a9807bb2150ecbc7121960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a07f629eecbbc38fe541fa28c7e531f4d463d3c7bea79e50c80bc171e17c9144daa0099090aa3eaabff4a0fde909502146b9a1599dba4fcddc82c7d41fd8707582bd02f9023a010c849502f9008505584dc0fc83261b0e94f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b880713e24c43730000b901c4666c00aa0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000098f171a2febf7c27179dcc6cf3fe755d18455bcad44bbe255826427abf25a2c15a68a6d65c9a80a9e55912568c7361a0789af1a8614b2ec305d26598939d3d0ffca00a0336a48f0e9cfb42452bd8e4883bbf35daff3eacbf183f457d435a9b440881b41ac98715932fed6bb536e9fecce2b6fd626f2eb40b528f87877c61ea4f187ed5aea3957d1025ab4bc6e0ad39d08c682797bd722f06c23d4bb7b7c572243ae1a9cca5c30e523b9d83f240dd6a0998bdda129161fd1ad97116058c11333295ee729d1fbc588c4c7c999c4766ad87c8480fe07dc39896712ab7d96a8917c1ff5059536d5011814734520e7d1edbeee0f311d266f22cc441348ccee2ab53f080442ba98e5c54c5b145def40caf6cd211fc48522e8496808d921817efe59c2ddc001a050fb1adb94abeca0024eb9ba778f1d916403cf2b6365ed2c3c960a02e2c52e77a05588ca7c5664e33c92695919fb514471cbf408bd58384262f1ab98adf0504c8102f901f90101849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b90184d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000923f490eb23ddd66f6862187a400e492e7bba2ff805244aefd7b8e3e56784c34125af9e96b06640036ddd78c1e6d0ec30f3a763623ac343ea983b20871627af317ae4e6b3a1bb53f784c63e3a58c743e1f18732bedfe56436c1e38885759ba26642bdba744a1341265247401d61b2042a3bc73c956865e4d79d5dc88ad3d4bc40d33d04bcfa9df33b6b428b996bb338b17cf32cca2a3da2fc4b93b0db7860ddffb4e8f769bd74b61d12bab3416ebc55d41ddd709a109e5844c90d0b781d913615f86865b103c0cf0b5920cf393a4fac1135bb0bf631f329af77a883162d3c97dd4a82199b3530ac248b1c97de1e8cd1c656efab7035d8bca80a6e135c4bcb077797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c080a049472a60cc620cd7957b1a7e94985d16bec210815e6c94d9b7cd944b71e6bfcfa04a925123d4b79586b61cc5bbd1a8c520224f8217c5992fd6145da251e603185602f8700104849502f9008505584dc0fc8307639994f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b8084118aa48bc001a0d08259f90ed8b8699e39371303d62780104b2ab36186619d8c99b04e1c841b44a0694e444813402c3b1e23f1b9e3c9740741436c774e5f635a30a521339902b3bd02f902390118849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bc52ade6b9ebf3f6ad99e8d215306e1c1f532e0322e4eb0cd5538305c024641dd4482189726d71797dc557529bc10b64e528d3ec056810223c968ba2e13c982e8afd03d070cef8f63156e3eac534f80d289a839519b83dee0cff57b1de6cfc17eb8585a5c614171d8d03e5e60e70694ef9790951848c59c2a758c9853c82996c60f157a3d5a8bafe568e0c270de02c72665df09162a5e9547ccac29b07e651a10cba6d2ef29cccca4fa453062395770480d56588111f94b9615f951fec3a4c57be1c095839abad83fbb732382ce6110e4767327b558f173562c36e0250ac9f3e15d2432a83ea939195e27b727120240cc6fa83ed6cf36a74616a2e8b2e72d5f4736eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a00f1c773eeafdfa5972430c97f2e87e83f34cf99ce7b8c731467c15911593b2dfa020e575db1ca446556ca5d043aabab6e1ce2b9d20213fa4feabc1c8886a3ec6ee02f8700101849502f9008505584dc0fc8307639994f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b8084118aa48bc001a0e333f05c7bf6e3b07395d349f3c715b2323f6c14b1efb04d24c665ea10cc7cfca02413561e3cba534f48194c8fa21f96ac0c7698f1ec5277c3539b5b90ca2a7ee502f901f9014c849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b90184d2cab0560000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000095967323982be49005b549d1db469f9b7f7f119a804ab53e6b8cfa32484ad604cea070676e81dbecfae1b4b1b57206e52e05df07fe86ad9c0e15cf2d21b4810c1b8c4aad4c362f530de98c8a9526ab71fed8ae6275787d36194afc71c9b119b2898866891ba30af5abbf95d3d9260bd7855e4c709dbbd89aa411cc91ccf95840a26a7da6f0e1172722ee464d05c66168d366100b630a9d7cd0476a6cfac2dd7d0f91aa3f0d43e208a12792ddcafece2badc6ceba90ece955620c9da8009eef264f86865b103c0cf0b5920cf393a4fac1135bb0bf631f329af77a883162d3c97dd4a82199b3530ac248b1c97de1e8cd1c656efab7035d8bca80a6e135c4bcb077797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c080a02238008da3f678e80737a79f64868be874c25bc8c3727c158ec443901f58573ba002b22c22b3f57e84b5cde2afc320166749b0006fdd2d3f55fd06252a17afa1d202f902390151849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b4ed34f87037caff8506338cb74a5f49c70e74a51639a928ac147877ca27f3e64d4c5c0a26c55742d2f032abddbc0279611b8e7ccf187f092394bb11119105873be206a9ea50adff84152710d16ee2d0d89c690b6fbe4ce3638addf8988bfc8bf778cf8aa1828d5886bc232489c6bccb860d46a5104d76fefc2d676960131e50fb1e942ea83388a599e38673067c354f8610912cea7ce976c11d48ca902a8212cde5344c7ec1b2dcf94654052e24c8a40a725a9eab591376c8142f4dc6e5e7874286b4cf4b050097d14205264d5de8efa790b96fbc3b6ba991b67d2becd1cb8d3874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0f1fb52f9fba5c236f495b00a4b1c2b9ef8445cb4e7698f98a0f26befd0a6a4a9a01a036f90da4836edd3d3268e74a26d6f2e365dbb98c7524d6bda3efd056ccb3f02f9023a018186849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bf248ce01cfa487aa5848e5ac064e27a9d0203e54164b21c39070cd8d82a382848340e1645a4d5e2e8fae3b55bb7779a6b8ea7e2348ea2ac567eba50d46a282e17d98660ee87c3eb44feed09be1f249cc11b94e2a31f0652f08d6b068be37e65f00f893cc4f4ed5b32f6bfad609c8f060048194d408d07223fa4b17ba45d4e6b76f8ee6aca360d4cc0b79651c7c4294544080e7c14c28b91bdf155de019bdec5663e97180e1ab3461725b593d992b80fe8cdbc1939562c814a2ca5d174874eb00286b4cf4b050097d14205264d5de8efa790b96fbc3b6ba991b67d2becd1cb8d3874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a07a49e3b934dc406d33377b002f52e12e40346cf81db66e2ed7d5a4dfa9eafad9a06215be7d0fd5a4a8c55c68aad1bd29f82cd85e45e077d1231c86b38ca35082b702f90239011b849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b839b9ebd68fdd6e736780b1774867958d8d4d2eac0a207cc267e729d59976c8bc28040eb79a7c307f694cfdb4661dbd401b6b9a462e3ae36c6a198309b08cd4b9012a7f8e1bd49fda7f0f6c51d886769e22a185e2eb931f7abc6957aae2c796338034969baf1d1e8c9c022fffc490fb3802d1d1ea679f5f37649c1c224097616ad65cd20966275313620654e2c8f63b64a7b93a9e40ef5c911085942e32b31b8e488754043fd18689e005d87631fdc5d396ed24155d873270a8c3afb2177c2487710182dc92f72c8293f10e2a921bc970f5bbc836aa36868eac1ddc8a894c17b9ac0c400cb6837182b745f26fac1e87ff6eded4c92365a9807bb2150ecbc7121960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a0a28e65feb1183956f468144553fee27e3f0f57a3c742884e81bd4bbdab894184a01d9dded94c9e9769e9bcca78da0fbb862eae6b07d52a7e1133d86a4178bf4e8d02f9021b01820128849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000a9a509b4f18edde75a26e0a8d7f9094c20dc29c12676068ab89bd95b12ed9f23e524bb2fe6dab20647015103bc58f58d5df9086495531f44b9cb12f5173b59b4fcf355d0cc68998dec60b8edb06d3c0ffac9c02616aa3fb323b39643a927960b7e8e6a9ec934b7159150528e2eaf915105561956da23ade19970cebf849b88211f0c2dafa306040fa2e8a7543fb78dc27bef039464182c5d4ef0f4932f43d03826c6b4d327b382242e1b3d577ebb1f93bd3d4012fd971b348f0128322b993929904d2d3a1c94affb7c27d59d54a29768078ad34fe118e46fde6b86664dc8fe3a84c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c080a0f5a72316e5706fb06bde178c0d5712e3bef8101a6b1b5a5f239f2f854fb0311ca06f3c0d6f988422bece5d273268309780b324475398e94c50523f0d190cc7a68902f902190136849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000ae959ecee197642ea7d471c5ac06803dec1e3fe484506d7acf10edba51764146870d2c8c5930027dba224208ebd8187d460213302b63a1ad36bf4305744d5bfb4fe1aecf0628fe674ae6fe488996ea79cfabc606fb2ac788bf8a76ddbd479935172140766b6043d87467ef1106f42e726a9705a4f0c3448ded17ab9c2e090733523975ade81aeb4467ee3d0584113a70343f675b0adc969dca2878343fe459c854e8d984320f8a4ac96d98628cad8909074f97538c2fbaed8c12d0a045e7424af04d2d3a1c94affb7c27d59d54a29768078ad34fe118e46fde6b86664dc8fe3a84c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a092750f96c4ce786f36e871b18d0fa06c6e025ecda9af809da6e9c43bef9457c8a06d52576daf3a8b7c8cb74cde25dab367238f9a93cbe2c63c5552cbb3c1d1d3d502f901fb01820195849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b90184d2cab056000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000009896f2f3a7674dcaff25ce15c5a6ede8afd0346fb77359c897e97f9e162743013ef248224f56d6fb586a53cc88c48937c4c7d1c99178795ec7a2a33270d6a2708ab096e3484ee818fdc65b9622c337185264097284b3ce8fa4ded216075d017b2145d0284bbb5ff2ece72fdd4f2b20d42592616380af3ff67a5447f3efea78e537aff8cfbd92504b0719548d30b0853109a0defcf494e1d8995abfef7a4f90e269e0e6d9f8276753500114d8a5af3b36b875e5bc835dfa3671f71155bf7574694f6be2e818d23222100f5a2543c3e0133f0dcf5dc686d4918328b86adeb6d38594a82199b3530ac248b1c97de1e8cd1c656efab7035d8bca80a6e135c4bcb077797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a0d8c845cd0cecddd93cad2f277903912291b62b47efaccf1ec973e1910eb35fe7a00f6dbf31efce1ab33723dc9f5896e0d027cd41843918b06a570ae095ff01941802f902390146849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b8661e6c57cf13a2b0f83b6f9d7bdde779f5bb071016d5339cdf51f83000f57e29fd3d94b10a0ff4867faa4003b189a34c85d92c35e28c63ef271ed42c8f679058c96706067d9a7b04ce7142497de5963519f45cf93c9fc25fd27444aefbdf0d9dd0ab522f6aedfcbc363c0e3286f3994b4b479a42c313e1c18da47923608bd8a06ef85f770c00923b222c953cd33151eb48190d06044fd1d00edbb3a835da2699262acbd5671bdafcc4346e225a5eb7e7f6ee95e8f415b78be64ea5425a447a46cb6b274fbc933d5161d201b57d1968b3e548233d94e0918b29e3246db24af10874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a08a29b1df1b1f4d47f437ba897062bed50dbfb8713ac54981869e67f34830caf3a034ffdf248d1cf4c2d549dcbc12a540041a5e626b581a4119ab07faa475384f2902f90219010a849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000aed1526130c37fe1d9386713b7b114d4150d2a040342512ec9ccfbed80b9bd7a0849c7ae8ce68c47c684e8620b0337ca930c0701f18c3f11ed4ab61d2e2ef3ed20919477d74c1d7550eeff3a99ff35bd10fd7765d7adabf1cbaff7d82c75a9ff0931124e7b4fb045211ec89ee9447aeccbfd85801214fc4467ff39d2fe586259cc228998f83c3b0943263f8ae8c204a222eadf53e2e3e2cedbce275343bca06ada448110f2091d7638e548db2fb79d2a7a3856581d873bbacda0c0517f9390bb1edbf73ba52d75dafc0dba73303b8cc428ca1329021edc3675720c12464219f17ffaed7b71e17931c50b3e99ec666f5a3bc118c101dc25a2118045b917db2f8ef46007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a09e8984485d8904be29cecf30966a2c7872937a76588afd5ea460680b49dae733a07250bff4edc0f516246ecdbcee0814002844a20cc47df7bca9286cca6974a1d302f90239017b849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b4bc96c18e934d3b37b5cf20a2aa0f5cd624b76d48f3fcc1775b749ee4cf89f8861f64cd100cc7daae1b2de215970a40cdfa7ac34cf7ceff6220d1b34530daa8ba28b26e71464a3fbf0ca71a9d56c70e2ca6e230c5262e48154ba316f9449de8700b3cb6f3a3085d5ebdd919fb066b157039c7007696fbd595624218ab6b8559fe0b04471e38d438279becf0fc1aab239877a95f1629f992c2dc289eac8dc4760a5bcf21393057e42dff5aa97a7f8618fa048885409eee239831ea4875d50215eb3d774843f2f704d4b9b833718e9a22df645e4ff2dae134c84af306237fba47b5d2432a83ea939195e27b727120240cc6fa83ed6cf36a74616a2e8b2e72d5f4736eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a0b41a2768fb045f150c391d42de3dbbebe78806caf1fbda684d4c35417f25c32ba03c93fb91a8851f17397497c45eecb2c5afa8b4623378dc53206f696ff68a1c1c02f9023b01820154849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b05e5958385315e92e380504f4917331ac6728b96ecb59bccfeaea853fdedbeb009dc977e1819e9ad7b51a017ec0920a9e2762990705d31ffa0f1a534358ff00ae89ae0bcdcf8e426103f8b533c61f518bab94c603cf5405f48fbbe733cb7c3e3ffda629977354c31eec661b208d7ae2dfe36a7eed146ab62f714fa519ac2fa9f20995c00279da55b3a30d1c36e178eabd25d8d11a07f7712acf5ff67bf8286d56efbea7d2d2578bae5493b49fb41af08c91de3e9cf196bf50d3b51a49e36aefe0815bcf88bffbf15080bc98a4d89ff43e0a6f9cecdd7c0745f45210fad4a5f1073bb78fd28784e7e398a646408ffcbe410c7c3aa32abe694422aa038737ab8e1960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a072ee954f1fbd5c9eec75d5439e9e26b244a5c2d1e6602f0437bab551383dec24a021784554b0572865a93b1ce36ce7f0036e6e84e5196134fb06ff9794a85865ea02f9023a018195849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b188382a0f8b8a26665ee117e2068f7a4b8e4db005232fa66debfdbedea2e91f3013bb8eb3e5a9968f8ac6119e72e8241b900a9b19f621ddc2a185b85cecf462d7081e2de01d1009b4f9f059e4962e25a24345d826781ff49fb66bb37c92408a5cc27ab0f6a33b96dafacd306bd846cedb44ed82f83c88e936c0e0b57c9ac6e4676ae7090546b9b900712031e17f61e88b2e890601fca5cf23e4f2cca9a8bff62a4a8f898ead64765bb8edb3ec5b20f1b11b97dda9335cffd26f8bdcb63b46bb50a26c2c2ea9612e28d0aa9296f80336adcd076167b3fc1705448942052a9852eac5912b920cfe151d881ecdfbd81e708a6fc74fa4215f00e3511a5ac0f229adafc56676746ed65e7e0cb2e85384b58a35f638c6fefa696d8c6ee519b7fcaaa602c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a0a88da5c2f4f5fdd154dbee033eaa526ca777c2d117af3aae5c90407fa1cc839ca02322b6c900df5573e528c3fee52bfb4cb3568fb3abcf80733e7a98d5d7f5e75c02f902390168849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b0d08828da3b451ff48506bec0aa56083b7ae8d434df628582028e91b73e7f34a5b85bd0a8dc95e34b5a4d2dc272933cfa8a678202754716b9eca267e9ebb19604c8d914b9a598c3dc8e3319ed0cd63cb12dd82ec33e72d493a5b12ac4e9f18817eebf675830bd5eef572fdcc127dea194ac442b769290c529437c64309b792d220995c00279da55b3a30d1c36e178eabd25d8d11a07f7712acf5ff67bf8286d56efbea7d2d2578bae5493b49fb41af08c91de3e9cf196bf50d3b51a49e36aefe0815bcf88bffbf15080bc98a4d89ff43e0a6f9cecdd7c0745f45210fad4a5f1073bb78fd28784e7e398a646408ffcbe410c7c3aa32abe694422aa038737ab8e1960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a0eb7e3f0ebf5d62518954a69228f3037a798923642e87b11bd53a4da98f691e3ba052b8cd41feecc347f2c20889faf4b5cc897e92233c1dc5e891335d33d0d917dd02f9021a018195849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000ad207893211540d533608d502859464056f84adba1d44014fd11b4b6e649a40c4f642adfdfbcaac1ff4cc2cf39c7764cbba46f08a95dfab60e494cccdb1f63fdc8951400eaf551dda3ba916dccba7742f8634a39335b7db03a5c8988508c33c6ca4b09b3f6f27ceb5ccd8b90b73ce2ef6199907132ee96c2e518ff9a3f14ff0e4e873e09ef631ec01f39cef9854e7433f9774f38b3edcf74463e36a28b36d6dc4cf2c918cfd27b5174f472afde4336532960910721cd7680ab2a8634341ec8cd62e80a0dde9daae04d4d607589027b4a67ac9ce47b5db4026e967ccd38695dcec4c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c080a023661fdfe8d72ef21339e31eefc462086922e37af9384267d45162cc45642985a0427ef02a363a2585e59a42cf9069bf0b26b5c07719245d615a99e76a3b93bbf402f9023a01819f849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b1edd981d61540d1900849710dce55ef7ad964107f1ea19cea3fa844d99270044a79e5653eefc8300c47758bdc1a74f1a8b1fbbf93b282ec0c8ed62331e6b91f46f1b1c964c50f29a2310a3864059850ae92f1344be7b4f6d7c62e882a29d822e6d4d9af745f27cf211a19fa48b97871fb09b98ecdc5bb9c1f417a44549b5aa973888260316e2ba5dd17da490f9c83b1a213b971b71d6f7032c601e799cf3c3e1a5bcf21393057e42dff5aa97a7f8618fa048885409eee239831ea4875d50215eb3d774843f2f704d4b9b833718e9a22df645e4ff2dae134c84af306237fba47b5d2432a83ea939195e27b727120240cc6fa83ed6cf36a74616a2e8b2e72d5f4736eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a0df163ad87d1b58587e5944a3f2733e7210b6c791d5d17467df92a4f1c1c5d3f0a06d801bbae254dc33fa4eeca7cfbeefa31ee436f6826d194abcaacc7313adb51c02f9021b018205bb849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000a518bb2d6072ff208e712c84d1c296739e7f794118db976a9e1d425b63419c6c165d46e8fe50622b8da5171e53087706f2dae4bebc9d268fb3538527c9669e3eb90247a5d13af88db5834bcc5393da74a52b72162ba8e1d66fbf5bd86b97b4836da2e154e736467bb805327a0d140d616f3ebb696172c0154db5c3258de5d90e5785172ed95a0482469ac7a2e8f9ca7401e3e0c0a071191f2fc3014def9f2d0a84e8d984320f8a4ac96d98628cad8909074f97538c2fbaed8c12d0a045e7424af04d2d3a1c94affb7c27d59d54a29768078ad34fe118e46fde6b86664dc8fe3a84c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c080a06d7a4c596869ae9ce3a4cd8de61b2228626b9156c53049f3123c5b3261516c01a07ca600df6570d17cf87cb90ab6a97e03e3af94653b73db92857e5f03aff0226302f9021a0181c4849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000a4dd43a382bd01e7698278e33a3c6d2c3d41b4cf41c2084725f510b58b3f7b937b0bf5d1eca343426b7e040243d921e7a1e825c6a683cb7898bfc0222aadc8356cfc1efdcdd0a0c19a30dd4a7d006be80f6d35fa5366c85c786359fb59355b014d0fd9cf2238c6694f8c18daf5cb0b5a49d03c42f312bded35f8e663d340669fc7d5e5d9de9a0bc0b6593d1b691e70105216de2cbc5e8dae6e4bc358c4c0c6951cf2c918cfd27b5174f472afde4336532960910721cd7680ab2a8634341ec8cd62e80a0dde9daae04d4d607589027b4a67ac9ce47b5db4026e967ccd38695dcec4c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c080a02d2f2a1cbd1156d1a312410e423d96e472f62cfaf7820c5bcb2a6e50e848c2cba01998d1a97ca259e91c4ccad70289427a6c9b44ab657fd6259d45b801918155d402f9023b01820297849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b6047f226e7be513c4cd5a36d9dd1f2d9616734f386bbd4d11528d62dc058268c2de506fbf7cfcf4061218f14d6de2fccc409aecdf4a627d96adac11060187ecd9e1869e7f0bb66f8dd85cf4cc76296db012afa883787b984d97a5a7b96c63669b5c0d57981397e009f796ac78aa78f15703ccf1873c532fe560eadc8ddeda6de886dbe84053c9654ee909e5116cd040a38429581726d6d2334965bad30c3a657de5344c7ec1b2dcf94654052e24c8a40a725a9eab591376c8142f4dc6e5e7874286b4cf4b050097d14205264d5de8efa790b96fbc3b6ba991b67d2becd1cb8d3874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0cd6785a6c3493515b0cce9979deb195ba332289d40e7569d6af7f7581af3b52ea04ced26a87e5b56c9d0f53bea69303c4030b02ca28cb2f71c7edabb1a58c5316102f902390161849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b6aeb584d45a4f012d704a7caee8e613ebecb8a097fc9a49af8a2bf5f4e5b5d961f55e799e95ac031a40a304009e31de78a36d8cf452508634abe7588c369c118cb382107536f84e832ca9e4ff206d001d0b2b1ed702bd7f4c29f0aab421b771f8ba0acf0e93da5d52b1b6f30b27ac7664995047d613e83565c05305f2cdce8007bdd4f986da04a30804d517d664066aba62bbdb168a98dd71cd421edac215be7699e64a1e835523b3c4155d0fd43d55d2385dd269e9b1e1bde75322dade668d366c3d0ec215d48641dc722bbc1415fc0d471cb99d87e39fedfb1e15ef24a4b92e09090a4240cef86f6c4a7c1c98ca76ce47f9feec130fb3dae8c9442a3806c505160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0c7dd85766e71faf1aba9438dccc3da35d039193b0fff6a514f9dc8e13ac4ca36a040ffd2637724b944c7a1dd9f478f0ec5ce527fa68ce8336d7370b78b0bc606e702f902390127849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bcd1ee71aabef82c553d2ac785ca7de18f10dbab36e30ac5ee98f344d2754e4d115c0667cf0b5ad79923cda38a2ba9dcda84b34eff778bb3d389149a8cba5e1981d6521e32daf5ae7924960a4ffd182371c3d38f508eb32a58613e3c7fbfee374c8bdb39ad6528fdd7ad571f514664b9f2dab9990abed698d88ee18f9799c681232c3f251efba7755180cc77acc723082ba28ae0b8b8ebce06803c6af580fcf3870f42c97662bb0ff7f0ecd7778cc5f0e1d56b8231ca6676e0d6e65f3c9525fbf66c3d0ec215d48641dc722bbc1415fc0d471cb99d87e39fedfb1e15ef24a4b92e09090a4240cef86f6c4a7c1c98ca76ce47f9feec130fb3dae8c9442a3806c505160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a018fb03af5b92221d6764c2be7528635c9603b262bb7a867a7a2bf116a53eb50fa0608ecbdee61129bccbfd0fb2afc28da771204c2d46ee1234ec70654979a515db02f90279010e849502f9008505584dc0fc830661dd94f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b8778cad1e25d0000b90204666c00aa0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000bdfaa115f7a1e4cd2ef96829f5f86bae1718722e834dc65e92a33d366ae217d343b1976018f89407c59f519bf0ac219ffd8dce400eaab1410f982fcf297a26dd947daa3dc28186504ec4753e556518f0788ccd68bf4f8d5d3de3e0dc455f82f9383d8bb2f45e6a685545cf0164a5a14d7e95ae5f34e87bfb20784e8586e8fd300f16c0f0d955335c82a267dd53ae3de98131a2549b7c01b83efbfd839fcbe7bdddf33050c843ba4e57566a12338065848ca80675399ae46265650d472bd5ee3e6c10096c71c7e35f393ef615a134ee1ee5a18adc0fbd607ea21cd7e98a493beb00bd4d2fdc72bde8f269e91b18b74fc4dbcc35f4b182127e8bfc1fd7dd5678140f834887345df96f4d60b5070d09e1a56b26f122a3ae81b1c3c2a06b6a29f64ff580156337097fc727277780dfea1f31e0683a283836f3d0b2f2f7411b3140ac82c305353be4f2b4e862d9e60a89fb2a46014d041bd09a0460049099bbedbc290c001a07a4063f1efaa189828c9f3ffb6b70023e557c283300c0cf5be4f3c3eb6efeeffa0790e0491e2cf968ad813e6053b2a71645d57268d319b624b7f4fbab9dd8bfd3702f902390156849502f9008505598d0c648308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000be36a12959c5046b9c240180cd56d6d636ec93be85fcd5f9e34c42ced450114cd01e90a628ec97d4193d8f11f75ed1356179d660af0b336f19c09ffea003329ff8f06948d9a3cd6c79ac5e38b4610a9a17c0662f02223defe332a483155a68f0baf135b77dee36d2d1080cc1fbb2750151cb9c68c226f7a142efbd04241071b55a443a479748450adaee230a98fae2a7f7e83ae41978a4a06a7e255ba23e5c90663e97180e1ab3461725b593d992b80fe8cdbc1939562c814a2ca5d174874eb00286b4cf4b050097d14205264d5de8efa790b96fbc3b6ba991b67d2becd1cb8d3874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0c96a61cec59ff3e46d1569dd338cb3ddace483e446db6d5dbc9d367bb550471ca0025400ece2dcf0cbf03b0604d7b4846f3e7778019d8d297620cd23e279fc9c9102f9023b018201d5849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000beff1576922656b11e3cd4d5eccf7d925112698b84a2d3ae0bb208e1496112c0bc84b88390c160f9ed43ece70a743f5b27286a4a2b78ec486cb5d6c3380ff841b813af59b6419dd7b38a65e138e25281630740551ec83fe7f967bcc78dcd5b59d93900c311c2a6c6186367f2cbef3f47e86101f96cb9acbbb1f40f84db9ca84a8b06980f95496918ab0dd23927efec5665be9ddc0bf707cd004a6319845cafacf9ca69f0224e93fb3d36e599453e3cc8205528fec829600637c27b4c7093ec8600815bcf88bffbf15080bc98a4d89ff43e0a6f9cecdd7c0745f45210fad4a5f1073bb78fd28784e7e398a646408ffcbe410c7c3aa32abe694422aa038737ab8e1960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a082bb4e35ebd37fc05014a8104003f63b8163a1e749825561f2533722b730227fa0320bca9df318fa3148648ae2d865c5c2bf36e491dfdca6503f677101054761fb02f902390120849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bc591bdb99854bffa605089251aa11f1580606bc948a4619a0bb1d7f416c09fd6b1f365eabbb5196338309a2d30ee0e03f05f13ab1cec1f92bd43e4e870f49f5f8189793f50123fdf85a781a87903dc36d53afb3eeb845913b10b17a98f3db77db18d55a2a32b5da789825058e61e42ce64907345e80c9f43440992add1ca403fc2430025cf245b31b5c66f6eda28c3ea590926d25dfa31ae73b28855b3df709ce488754043fd18689e005d87631fdc5d396ed24155d873270a8c3afb2177c2487710182dc92f72c8293f10e2a921bc970f5bbc836aa36868eac1ddc8a894c17b9ac0c400cb6837182b745f26fac1e87ff6eded4c92365a9807bb2150ecbc7121960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a05a2573fcd83754fb5eeac75c701a5e3116f1c758afb4d1e0b4fbad170458c531a0185efed498ccc93ef4bd24de9f48e6d7769a515557a830f0cfe1dfdf3343f09002f901f9016d849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b90184d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000920bf62ff97907c25fcbdb84a450718c8e7e5c6f7c8e541cdb24b5348d2f7864c81ea3c62d00c564802083bb1fdef5fa435e276e4780d543bf0cd3f21825282d2b8c4aad4c362f530de98c8a9526ab71fed8ae6275787d36194afc71c9b119b2898866891ba30af5abbf95d3d9260bd7855e4c709dbbd89aa411cc91ccf95840a26a7da6f0e1172722ee464d05c66168d366100b630a9d7cd0476a6cfac2dd7d0f91aa3f0d43e208a12792ddcafece2badc6ceba90ece955620c9da8009eef264f86865b103c0cf0b5920cf393a4fac1135bb0bf631f329af77a883162d3c97dd4a82199b3530ac248b1c97de1e8cd1c656efab7035d8bca80a6e135c4bcb077797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a0ea048e55174cb0d1a65210ae13f5fe3114709ebed9381dd0f86d398f9f83e04ca01c83ea62f3aaf0c9f3f7073137b48ee8351ea77cbd560780be22d0c739872b8e02f9023a0181bc849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b5f0547d10854fbb95dd3d2e6fff5fbe5e73838af7016f090ff4a99cdd5ad4a7324e93441c761cf8775c4802619ceb01d51d8d635c866447cab66fa5127880a253dcbe248a07bc8251b951cd4b3b6faa63cab80808d456c6b71ff7db1a87af0433ac73431e9c2315f4a9e75c67b1d4a5214ae452ef8227b0c7cf5364e6747ac4fad79cc52adfec7aa2fea4409beed20fb4253bb683a7cf772aa821178dd4e4b64a27e7fe6f5688081767d606e6a17c36d1a8271eab6b7fc2ef47c2306091e40a611686f88b4b1efb63f3d02102a0bd8872ab8be325fef22fb6b35d9cf8ea8d81a6ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0d01717709e2097a0db9dd5fc790789df9334717084aed5057b8c5f74217fe2cda037d35e90f2ab813f31cc4b43909ca88e04e308fd5403f7d6f23aa20d2b2c7d0002f90239012f849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bda149a3e36e5dab90e69c65eb92eae622b6fa99f596370fedbb7dd786db9a7a562792a9ce6f3d3bec916b3659de1bc3a4ef6eda7fbac672cdb2272d7ae41edcb8aba446591ae08855364c9d460ceafdd8d340fe95f8a6ff333be53b1201272cbbe4d8eb489952ada4af205161cdc6be7994f2a8d5b598428e55f356485482cdbde7773b4b8f3d83ccef36bf1845e47781d828cd6d607e5b5b290c0e0947c4644eae5aca00e946d9dca1871117bf328bd20f5f7bc1f5a7e9e3e497e42d3ace8080f91a6423dba6a49f6944b28d8c41eb2a0acc874bd9cf07636081f448771b2f66ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a05b4c101bfe26c92485a646a5a98354ed5bba19e280b5b75ae938764d804392aca04e5699e95b77bb71a524626b27c4e85f7d08916050e100ba9983f27963b8875302f902190116849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000ab38b88c468fa35276be986980608d830e1a4f0929d2dc01ed0a8aa544f4b9ad9d369ee813d019c4fdfed10231c8a352216c732923c1b80a7dff155cfa6e45bf17750ad06f7c3255aba180fc177d12975f243bb1211dd0ba2baf214e2a5509d4cd0fd9cf2238c6694f8c18daf5cb0b5a49d03c42f312bded35f8e663d340669fc7d5e5d9de9a0bc0b6593d1b691e70105216de2cbc5e8dae6e4bc358c4c0c6951cf2c918cfd27b5174f472afde4336532960910721cd7680ab2a8634341ec8cd62e80a0dde9daae04d4d607589027b4a67ac9ce47b5db4026e967ccd38695dcec4c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c080a0c27f283508879af2bfa2b3223a2fc05aa162753011248dc5d1823e37b06ad894a0454a8d2bd6acedf67ece33b8bebd17593e51ad2d1fe147a6974231b26dd4cdd802f8b1011a849502f9008505584dc0fc8301620c94a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4880b844095ea7b3000000000000000000000000c8871267e07408b89aa5aecc58adca5e574557f80000000000000000000000000000000000000000000000000000000165a0bc00c001a044054675cbb65c0357136b7279b81146608b672e47f59c2e6bbae38957bcf7d1a07c1657f96629f2637ef363f9801c2bf94beaa6e8f06ab392188b0be4bd650e6c02f90239014b849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b92afc7c5636e754cb271223071cb919b889df32a98cb1c88a939f2f92fc165f1fdd3bd202c862e82486dbb36d4b351ec71a058691026f1e242217e6323cb05fe0fcaf63cb0ebb1f9309c24c6272b532256e7aab111beadecfc1be208875540b483457c9fdd59bf72e5a8498937baa8ddf6b5ee96f52a4bf5501a41bf841b2bf18dd36fcbc5833f2116232785f8359d2334dab78eaaf7968a293cd28690e1a457713086cb817451ad27927dcb997da99d54ccef967bb535cbdc21c283e71b2810b3d774843f2f704d4b9b833718e9a22df645e4ff2dae134c84af306237fba47b5d2432a83ea939195e27b727120240cc6fa83ed6cf36a74616a2e8b2e72d5f4736eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a092781076d98a5fcbaddceef505f2b8f1e9ab3f87fd657678b7e477531e732feda055609d6a1a3084698c6b541867e40a27c0d842ba39f90292e175baaaa092032d02f9023b0182010d849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b2a9bead16570655876cf3c319f997826ce0b82cdc68d43de21d3f7bcb9bc0d5715ad696d366a123ef5f1dd04239926fd01038f864cb3aa77f5c098c09de011b3a96382f1ee45d142fec35455c2e50aec5fd7db9ccc9b46106ca2ac37179489c037058c9696528f3eaa5609367ac44d72a2cc100eb104eee1f2ab7cbe3bbcc0517bdbeb05da7d57e84e50bf7e5dafd47934ba427f12621d440dcbaf391c39dba26164a4a24b1402a57e8a1204a10b73460677f293ee7bde90d60a0533387d3a96e1c095839abad83fbb732382ce6110e4767327b558f173562c36e0250ac9f3e15d2432a83ea939195e27b727120240cc6fa83ed6cf36a74616a2e8b2e72d5f4736eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0828955a823a88729f1aa9140562a0826ae78c6755fc7e5cfff1628e7b0fef1d1a00a2d86518baef3953a8fa11d54ebe61f740b94dc03c4157138e458f61aced54d02f90239013d849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bec2c811d5daf80dfb8d8e7ddfae60369316ed6d9e539e17dbca2b9414c4a290f7a3474f1fc569aa3fb5454ec294e3bce7555ffcd6b4dcd69293a7b8fab75ddebb34fe61434f36bfb4d8c3d1d20d5ef0d908fdb51aee91e8514e07a65e0f27e391c57f0d9a8a8c22575d9fabf4d02c345b6bd68689b09c0197c9be4aa8f1a239a10369baffb808ab0ec10de3cb51ade4c7287c1fbcc49a59aa8bf99ac5332ccab699e64a1e835523b3c4155d0fd43d55d2385dd269e9b1e1bde75322dade668d366c3d0ec215d48641dc722bbc1415fc0d471cb99d87e39fedfb1e15ef24a4b92e09090a4240cef86f6c4a7c1c98ca76ce47f9feec130fb3dae8c9442a3806c505160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a06d6d370c586cffbb981cf2860ab71ed6d393d81fb4e3134eeeaeee54a26efc18a060e281d112a8e39b7cb7652a5f17b43d5cf298468ed760bc8d02b2b7f21e89f902f9023b01820132849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b27fdfec8b13c31e435f70fdd44a37dfba8adb384c484a4b686acd44e1e8d47e4bdc81bb1053c1554ac47d48ad474a3b2f400b7f875d2b03cd75b189093bc716fa2471078d689ac7f53bdba4a182b884d6c58284a7328073b21df8f2283b7c570d2f8e9cb25a0c039f4213639428ec514dccfd49c1ff6caca559f9af4f948e89ee04a0a4e50daa4141cbfb0658f625b72ddfbc600881b4257e454b0cdbfcd45a402dc47c65737484bd364c502208fde3574be9e39776789488a862806ea233907b7db17258af1aa1618665bc04645d5b0c2a5bc6c16c7285a4c645fc0aa5dd222e09090a4240cef86f6c4a7c1c98ca76ce47f9feec130fb3dae8c9442a3806c505160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0a5d63110b57789243f7302a7ac1b3abaf905cbc876bf2d6cc00d6904af7a4d37a06ab07133bca91f898fedc1aacd4054d33c5d1d9c592a865df7dc3a3bac9d0d7f02f9023b01820164849502f9008505598d0c648308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b146ce1b74d5e687513365cb8bc73789ed6a337d93edfa894e8e8781c7b426d86800554800128bdcdf583001c83d4b61c480484c305e27fb7fa59731ffc5c1207b8c2d912ca68c1667a783dea6a8b6f663a83e7de3a5141c90624c3d78bb674c23c5048ea9e29bc7acdd607d3ad8b52911abcbc85db3d3fd35bf96610f634fea8c082e8d3b33f23ead586b0c03120973438415a1548113ccdba2873096f347582a27e7fe6f5688081767d606e6a17c36d1a8271eab6b7fc2ef47c2306091e40a611686f88b4b1efb63f3d02102a0bd8872ab8be325fef22fb6b35d9cf8ea8d81a6ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a0860fd950c509638ec6fec84d4ee58f7ef339e5bed865d6d24e8a1a0c788871e5a01db4bf617925466e453cdc93c370bf28a0575a321edf1e26d885a862db2ea7da02f9023b0182015b849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b0700d96cf9a04621383af3bb03403e17bed823b7700c64e4687ba0bdca9d8590a660a4e2adc5c5ae150851e30af78b7bdc2497f46d488b5f556352310824088c0e7d13802b59b72ff9369a97c88269d8dce4974e7410ee6abc7b6ed84f3d711c84325a1d81ae2f3fd2bdf0229e3a0dd50c1d144af422ec4a8d45fff39dd25e503bb3c4fe085120402b6902790224fd459e47fa185d821e298e45366306a5b3bc4a357aa0e28aed6f9b0ead588f38d4a27d852dbb4b90ccbf35d7d49dc3bfed3c7d510e7bd2727bec626207f433b8ee3cb02172d7e3d463087da63edb1aa1e51173bb78fd28784e7e398a646408ffcbe410c7c3aa32abe694422aa038737ab8e1960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0a81693ec5857aabfde7fff9cd3f6e69d6f6150c54989b4d52b714ab3ecf2c02ba06cdb14b08c4ba30ca67a3ebfad20c06d7e67443066fd290046682e77d24b7bc902f902390114849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b1886509080dd056af6b391145a577ae1bd4dee6d2fe96a00c312aef25c142b77f92946d9223739432576035c4c2b4a9e99d558ab24faf94ac0f12ffe74a23830813af59b6419dd7b38a65e138e25281630740551ec83fe7f967bcc78dcd5b59d93900c311c2a6c6186367f2cbef3f47e86101f96cb9acbbb1f40f84db9ca84a8b06980f95496918ab0dd23927efec5665be9ddc0bf707cd004a6319845cafacf9ca69f0224e93fb3d36e599453e3cc8205528fec829600637c27b4c7093ec8600815bcf88bffbf15080bc98a4d89ff43e0a6f9cecdd7c0745f45210fad4a5f1073bb78fd28784e7e398a646408ffcbe410c7c3aa32abe694422aa038737ab8e1960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a011020bbea96a331f4f0d8b5b8e78617e48dab82fea9ff554a5da0537c6e2644ea0771e968b3669e8c13a5260c2fe06759d0c9ba6678d45542051c12c0e3ae4e70202f90239016a849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bfada20644b14e3288edcd7f2f4a3b7c0b95bca3d6fce1421b8c9518c66dda735f8ba877a6bfbce30c4ce611502a1ccff9f19be6a492ef7046816fc9fd0b39a182c63114896df964394ce28735228db04db1fb7d9e53b4cbca4ccb2f0f1af530ebfae2cc4a04753549155cda73390e77a0898157e5da2ae4acd9089f1539067351c343328645fb4d3145cc0675f6c7e3777aec91f5b1c338fe6fa0795041809d780eccfd9aa7d59e9987455ceee93c47cf30839c9e2242c79288ac5e451a96d567710182dc92f72c8293f10e2a921bc970f5bbc836aa36868eac1ddc8a894c17b9ac0c400cb6837182b745f26fac1e87ff6eded4c92365a9807bb2150ecbc7121960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0860258b9d4abb9c1e8c76cf001b69c6be91685af87b76f8c3856f5135901c70da02a6e1208457ec2eb4fc74cef0135030913ae902f73745cebc26a0c9c608f231902f9023b0182010e849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bccee4eb9a2218470e55110440a1fd07d36ad7e04812d2f63ba183ac4b36b2642b5c9fb285b5f48ede753c8bd3e039f5cb6f9bd3ef96c3d5c1ffc73f2169a1eeba29b4b3faf8626e616209d7eae7e34a343f547c39a97765395c3c0aca891d42299b0a0a6c94eddb43658e0025e02c677d57337ea13820b6f06b08b3008a6e2a0ad65cd20966275313620654e2c8f63b64a7b93a9e40ef5c911085942e32b31b8e488754043fd18689e005d87631fdc5d396ed24155d873270a8c3afb2177c2487710182dc92f72c8293f10e2a921bc970f5bbc836aa36868eac1ddc8a894c17b9ac0c400cb6837182b745f26fac1e87ff6eded4c92365a9807bb2150ecbc7121960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a06eb9dfb62d53253a002672fddf71869b82bba33db76395d212acf8a3bdeef011a076455ff2fc72a7d6a186b4e84a9eb12151a7db58480b037e8598d044e054ff8602f902190174849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000a28e531cb1c1eb28e91d0ce1cb181d4ab263060332debbec80f528c932545d5fe9de0e64b74342b482e8e73cff64f3363fa8371cada91802c2fe4b235000e65c6f50ad5527e97b35406314cb872ad6f064e957b9f8312a5f07d86eb96f9e0a6a6decf5e4e1131c590645de42305afd041f1b15fbb4e5c53fca066d72efc15d863e873e09ef631ec01f39cef9854e7433f9774f38b3edcf74463e36a28b36d6dc4cf2c918cfd27b5174f472afde4336532960910721cd7680ab2a8634341ec8cd62e80a0dde9daae04d4d607589027b4a67ac9ce47b5db4026e967ccd38695dcec4c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a06e2fd4da92dd2c50590a83e7020398d82504b156c64a087ae588b033e64e29b5a046a193d11d234ff20d1421f7d20e5de181a51237f8752ef9d0ccf917271c6f1602f8700109849502f9008505584dc0fc8307741094f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b8084118aa48bc080a0c86c17b0872cb1eac219028976612898fdc66a596e1c3f7388f5663af6aa234da07d00b7ad6841e3149a5b8eeaa4e00f7e35a919f94a2a33b8f2dc1df20996526302f9027c01820108849502f9008505584dc0fc830e4e3894f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b88021f90b07aa28000b90204666c00aa0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000b6eea621a31d557f53864c5cd1c2f64f0497844f8a54c7d0c82421040f5264fb92138918e4848c0aea1d9aaca364bdc2f08a20b26555adc2fd70f795a2dfe910a6357d8b5536718d263d0ae705227a389d3a0e5db2fca320f8ea349a5b612b468645d80d34963f6c5f03cc8dd1ac1e74c9f5f2c8da158e3aedba2f8aeb4aa131e2b20ce259ab0cb0632330ecd89e8624683f7b669061b4de775a47178f576b9a19eeee8887e94b31146d1cc79ec0149374366bc57dd45786582687a85bdc4bffc46aff3c63caf1d6db3458d94251408fabe4dc4d385e5fa102e82c426963b69ec2fe2469d715f1ebb609042d032d33b50954dacf341820702a87e360fb2f411c3b82cc07d0dfe58215e406ad5d7f66358ed9f78cb30a738d01574d8a1eb14f63c0b3111eaf415427ac74f8b8b68fc93df5caeb67ec32d8e4105883e2869c067a52c305353be4f2b4e862d9e60a89fb2a46014d041bd09a0460049099bbedbc290c080a063cf25040c2c43a549220a750c6c70b66286f1bafd95b0b7b41caeb14554f9e8a02a698cb2dadb1183f508ddf9d6fb3083269f1969b3f064bb3aa43ecb99c0127602f902390141849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b8c1d3e8c1eb8bf453bf677cc88089499c627a067b0828f8145b1a1fa56d3416c886f8dc29c7254cdfe8e97e03bd7f7fffa6008bbd628b77d98b397201ae9f5a252b748b5bfe02a654f4f1f9904f6c73536a61eacd016e09cff9dc6f4dba5cb3be29ab2b0e017d31537acd9944de544d6b03768af1443851845043fe36e79e06611d6828e7a5c6f653304a5dee69fdd27a099b0c728730fada01b02c727025310eae5aca00e946d9dca1871117bf328bd20f5f7bc1f5a7e9e3e497e42d3ace8080f91a6423dba6a49f6944b28d8c41eb2a0acc874bd9cf07636081f448771b2f66ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a01170ad236e39c7e34b8a68119a35a0eca91aeeaed22b64c0081efee708cece8da06b5207f70150737b129845a553340d2f98ea2066bf3522d4f258451329e1571602f901f9015e849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b90184d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000980163a563f9d648e1a4ccf691620acef51be250c487ddc38a70a75b14c977a2d4746fff53fff88abee3d2159b14f641b7213978e824c33cd24e99421f98a142e2e9f6dc48afacfdd8cb7719e559a73484a1b4c7f4228aeeb62ce93c6d65b21a698866891ba30af5abbf95d3d9260bd7855e4c709dbbd89aa411cc91ccf95840a26a7da6f0e1172722ee464d05c66168d366100b630a9d7cd0476a6cfac2dd7d0f91aa3f0d43e208a12792ddcafece2badc6ceba90ece955620c9da8009eef264f86865b103c0cf0b5920cf393a4fac1135bb0bf631f329af77a883162d3c97dd4a82199b3530ac248b1c97de1e8cd1c656efab7035d8bca80a6e135c4bcb077797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c080a0386d8be98ed5d98cdc1c8e4007a5d22bcbf66550e520fa309e1030b9e2b2da3da07e4101c847748438885a3d3d1233d64403c7aa5fb0c1977f491140265bedaadb02f90239011e849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bef9226c68acfb69b32f87393453e9a62b37165e87df9740041729ff5d658dd07385a27eb74af451c905108c255a3fbea5ba430d1c898028c18f862a4dd2d97208c96706067d9a7b04ce7142497de5963519f45cf93c9fc25fd27444aefbdf0d9dd0ab522f6aedfcbc363c0e3286f3994b4b479a42c313e1c18da47923608bd8a06ef85f770c00923b222c953cd33151eb48190d06044fd1d00edbb3a835da2699262acbd5671bdafcc4346e225a5eb7e7f6ee95e8f415b78be64ea5425a447a46cb6b274fbc933d5161d201b57d1968b3e548233d94e0918b29e3246db24af10874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a03e6338014436686a4b4751668fe534a468810b6803b4a06dbf8c9fbbb6ce3e30a04d70e94009a5f7307c1099b8090d4ba69bac5f1ca517c0fbe0f4264e4abaeb1202f902190160849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000a632a01f7aca4110af985d1110c5b158f8fcb7c921e3d143e92475029f609c81d18c50f0f9c5c959daa06bd028be0bb7a0bb332062dd0f9c8f4f611b2fa1d16bdad2eef155d5d80d8b962acc037e2743e5c76027144b1f707e2b4ab94e67946c00c23e9299fe55bc6d288074093fa5edec958df0a758b364a52ba1938aae54e8d8b241b25901d96ff75624149cf8483acc852d4680d915625802016f2f8600296181ef6e8b3dd65904baaf7e994510197d8c197f50381e40c345d598f9cc7344e2e80a0dde9daae04d4d607589027b4a67ac9ce47b5db4026e967ccd38695dcec4c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a0ba702b0a92ac0a3fe80ad733bf239150b57c8135cc550a3778cb9dc2509a08c8a0315de20c244085680f3ca860b2d276b5c84b2f9e9deac67cd5212cd59f1ccf3b02f9023b0182010b849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bc2b4f6a4e941b0436a01ba81bf28d112cf8386ed1ab9ab3ca964bfaf53a721feb03b9d74944f5b3dad3ebc9fda919ed203510246a6616b58397305f87d6b8215362ea5b975c3fd8e5a1c4fa997855cd1d8dbb377b9005630b0e8d8971abca64256ff198866201a39698895f89da74571687399f4d0e805cd7475289b2b151386a4f398452c98223a824d143041a0f7d210b0da1200d216838ebfe8383cb2b59c9262acbd5671bdafcc4346e225a5eb7e7f6ee95e8f415b78be64ea5425a447a46cb6b274fbc933d5161d201b57d1968b3e548233d94e0918b29e3246db24af10874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a096c8ba294c3b20de69a51e020313d1aa8240af62c89933239f31248f61bee13ca008531e0347a1b559666d25aa2cd0e0ecfc848de41cf7d915bdb1cc14fd411a4e02f902390138849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b8b853dea75c281dcea2cc230c6cbdecbd98824a39363bdb3ed1835c759d5bbd099031f6b04528465c381b6227794bc4e908cd10ee940bb016b7bcc1e4a3b76b21d6521e32daf5ae7924960a4ffd182371c3d38f508eb32a58613e3c7fbfee374c8bdb39ad6528fdd7ad571f514664b9f2dab9990abed698d88ee18f9799c681232c3f251efba7755180cc77acc723082ba28ae0b8b8ebce06803c6af580fcf3870f42c97662bb0ff7f0ecd7778cc5f0e1d56b8231ca6676e0d6e65f3c9525fbf66c3d0ec215d48641dc722bbc1415fc0d471cb99d87e39fedfb1e15ef24a4b92e09090a4240cef86f6c4a7c1c98ca76ce47f9feec130fb3dae8c9442a3806c505160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a00e18dea71ae0d94685e4dcbe5cb46ec2d3654288d9fd2f56c69594eef69e5f58a07f43e6324cc8843635e034b43a6d8bd8f7d211bc707a05d7b5bd7367cf541aee02f90239011e849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b64563f20d6035f86632ae11ab42f4975d4d17db44e6e4fcbe9d9e252738b3c23338430f7b29410907b75a3c79aac55c5c28b36abbe267691ef4208971881fbb014d3ea2e1a96c637b30cd1ee39102afc6a8f2ee38e4b2cc0d01e14f44c1758507cfd35718e2c586ff9a3fee7bead78c979e84815e678e9f0833f8782898c03fc228b2bb2d8a4db141f93f7373bfeb3ada6c15c980958d2bf5fab8a12e721de77041322757cc78e51497468c963c098e84ae8e960e15f8345672c6d16f97f9cad7d510e7bd2727bec626207f433b8ee3cb02172d7e3d463087da63edb1aa1e51173bb78fd28784e7e398a646408ffcbe410c7c3aa32abe694422aa038737ab8e1960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0fb72db308d2d3ca53ae6d2e451f48ec0b15ed1dc3a1c2c1f68604ad59ba599a4a0679d4a59cb92e99375ff3c7b3af14deea0f2dcbd725efe36b3f6f89004771bd802f902190167849502f9008505598d0c648308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000a3e11e16283f5f9fd0b8df967931363efa6321acde24be4a52a9c1ead5cca4cfa3267a88a754e7c7dff4b7f7d2c1d9a64ceee4c781888f4c5d56ed96c5d9d3755d688cbe37e98361e903ea9470e44477b88189da0f86c8f48df88f722df1699afb63095b985d501ad553dd01dac2096522e38b834a23b0d6aa7565dfd02e9aa4c16d440f5ac5df0a14514f2cf5bd0ff41a17eaf0518b6d90f3b3a564e1d82c3aca448110f2091d7638e548db2fb79d2a7a3856581d873bbacda0c0517f9390bb1edbf73ba52d75dafc0dba73303b8cc428ca1329021edc3675720c12464219f17ffaed7b71e17931c50b3e99ec666f5a3bc118c101dc25a2118045b917db2f8ef46007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c080a032f6c3c033b7901bc58a9e39f18dac220090ed2cad9702f1218b704df007ea45a00250f1477542d44babb037b7de1816244f0b74a99ab41282385e9c94e52c16e202f902390109849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b422f0f67b1941909ea2b9e6d7f55a3e8c84ddebe05c4b2eb10e325a5f3f29140e3058cda09d4654bea424891deaa42aeb3658df3043ace4436b4424864de9193515b39bb6f3dbe4591751f072fb568ce7f686b0bf3739fab2a73a5d2258beb0f8c476bb69dcbe9a4af4cd65265b53a8a1c5df99123653e583ae510e81341fefcad79cc52adfec7aa2fea4409beed20fb4253bb683a7cf772aa821178dd4e4b64a27e7fe6f5688081767d606e6a17c36d1a8271eab6b7fc2ef47c2306091e40a611686f88b4b1efb63f3d02102a0bd8872ab8be325fef22fb6b35d9cf8ea8d81a6ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0e001f2abf794fd823b6a64ab5729dd28029b6e833eada8b40a0f5fe397c7a413a06025c034c3a485302602ab9d571f8796f54c759be241c47a8fd1d48f5bc17a1b02f9023a0113849502f9008505584dc0fc830e557e94f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b88021f90b07aa28000b901c4666c00aa000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000094faeb91a513f418161f43a1b41bb72f9706bbcd57fa4d592828c0eabcde5e349676b4ff882887c4420b3f334d279e718b62e4eecde831686ff2b85d4079fca90156269608ac8c9801c6276132dc79e7459f44ac599021990c2b51c034e02511b9a391c1b6622c3c04974261af13eaa64e458eb496069baba7e01f721f11332900db90eaf1bbb910e4ba48fd7f57af014f9c40d87a622629259ac5467f43a4998a0d041a10b45c160b9c53664871c7b10a02f343590dc45fe288099d4fca2d3678dcfbe23f194f8364b9e34635ecd5b474ed7836af67dd6cc5a39dc59202e3aacf5059536d5011814734520e7d1edbeee0f311d266f22cc441348ccee2ab53f080442ba98e5c54c5b145def40caf6cd211fc48522e8496808d921817efe59c2ddc001a0300434a93ca5c057cc54740a0e7f448e673fe7e93f936d3f42141083933c53bba07953419109feb2869d1e131f9a29251f889542724bbe657fd4cd45900d54b4f902f90239014a849502f9008505598d0c648308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000be4354598d645950bf6c63fc0373b02841d214e092ff05d592577bb4e23c4c9484fe8e5eea18c084228f6fd61334ae61f0198944c267f57a1303ff796a88d51c71dbe194217f3123519b79844a57567bef96f842a6cd8e42f05ce9524f2b2ff306ff849b380ebca34b170fa318f2b395b3c270eb9d9a44bba9dc4619411563d354d0c10637c2bd2e82fa5c75b6df67103185e90efa5109adda52320fc643f5bbb340bd88da4d4ad7f678cdfacab3a163c4495be773b266761f072b5775a65c45e6cb6b274fbc933d5161d201b57d1968b3e548233d94e0918b29e3246db24af10874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a08604a5bc03df8d223f942159f9a46c623706a6a00aaaa64f8740fc4fd4cdc31fa032468176fc3184bc843103cf8ca2f423cdeede7c8c2290d457ca1d54da284b7302f902390158849502f9008505598d0c648308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b259e81e4e86ff30d27e4fca7f0fa26ecb3f60bb4e84ce1361e8df9a79cb76bbacf55d08484af822b9b13848571d27d615cd7ef5037b95394921ffb1358a730ec484774ff0d8e87f19daa4e351b6e2bbfc88e6c68633249b16ef63a48f262ba5d54101d8dd11bae84ddf0839e76b76987033ee3fc08b57f2a13e7358d9b5e48edd2608d423a97ead4a46eb0ad82db90b76ece811cd6ef62d5395c941d88881a33368fce61468f4a0753b448f8ce82ddcdf2fd716375a1fb922d174d111abd5fc40f91a6423dba6a49f6944b28d8c41eb2a0acc874bd9cf07636081f448771b2f66ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a003fd3dfaefc712046b00c564d74f6185c54abaeb786332466cc6bc9024839735a0407dd57c84462f70e23ba3ef69b089eb9b4627246b7342d86f8040a423d6978c02f902190170849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000a3ecae468c94e6be0bacc16f7d5984f25924b9a2d0abea2cc300f7eb744c7b394106e9e3d586a4a880e27dbf6a71074131ef244df4e544d424d77d4cb2535ee35923ecbf9ead1801b891c8a634852c5ec2ab3b4e6e4b7d1cd7a1c9e4722154d039dfa13d077a86e730de6b5eeec072cc8791d5c39427b1ee4e804f1472d6439256985f69b584dbfd1dd4767d34614eb1fe52f627bd020b850ab86a00c7d95e0a8181ef6e8b3dd65904baaf7e994510197d8c197f50381e40c345d598f9cc7344e2e80a0dde9daae04d4d607589027b4a67ac9ce47b5db4026e967ccd38695dcec4c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c080a0c88b0e4e2bad08ba9d88487ae4d470e66ec6039ffbb7ba6344d19699504e7561a0148638279b9510e51307faae40fdf4a5f4c7a41e26ad4a6afab4e59977dc630702f90239015f849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bcd9ff59d96ea9cb4c7b360d162b9cd49dedd2f30abb7d166fb01d732207fe8cff62e41169f954e875f18e4061ecf546b3ada32def88ecb0c50effb3cddbe98b2b9cfee1bfe1fd33ea4b6e0da93c059e23e4a85c6fbc9cece1c16184f090f4537a959c361794f5a19aa16f439e5da49cec5cdb477cbef871e7f4008c9c369841aca2fac698de5d0738c7811fd3124aebc22e52367beb65d084d958cc9cb9eba252ac86ebd96f96f7eab60daea44eba5a2a551436123ec6af1858d6c9c9e421d98b7db17258af1aa1618665bc04645d5b0c2a5bc6c16c7285a4c645fc0aa5dd222e09090a4240cef86f6c4a7c1c98ca76ce47f9feec130fb3dae8c9442a3806c505160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0560b7e01c6a6b46ddc68b8e73db2f0c8e7b4d8957d4df6171b47fc2649ac11b9a002a997f48c3c78f65f015dccd6472110c88e7b487451ed56aaf0b75a97289bf502f9023a01818e849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bfac421bc3130c7fe9c8c33eab3d0f65395a12d2f5dce6043ea2964468ec33e63e8c7585e43abf49d73247799cdb2af950d77bb044a7660ee30bfe3a227ffcd8dab138c9d5b45c6ece7a9a2ffc869ca8d60dd94ea9dec8b19c668a98875b772105bcda5c06911aeb660abba38421c0ff56a426281f61fb53eb000f147f02d9a151c343328645fb4d3145cc0675f6c7e3777aec91f5b1c338fe6fa0795041809d780eccfd9aa7d59e9987455ceee93c47cf30839c9e2242c79288ac5e451a96d567710182dc92f72c8293f10e2a921bc970f5bbc836aa36868eac1ddc8a894c17b9ac0c400cb6837182b745f26fac1e87ff6eded4c92365a9807bb2150ecbc7121960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a0df5f22de3a9ead188267fd8ee5d1dbc947c790aaf9cc2c63d53e5ac452067a9fa00f81cea80752b64b4d9d0e7b3fb4b6f46d2d14b2b9152de9c4f5f92b1a6d2e3c02f902390133849502f9008505598d0c648308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b1af8ca38ba541fb0427eb306db622f0b04701fdd9da4ae87722b15123dde084a6c80b72f7fac6ef27baca35481bb77740c893e5ae83d6827614bcd2c1b949712f8a7476b2279bf091e119d53faad7aa724d6994f74495da46dd5825c59727fd20d56bbc4d044d270179d1803b85650d8d5fa97d9ca10a80270ce6f2db93219aad57d1c816b23d9e33e8a635ab9df8a95f1c394a9e44b4dad0095db5096d1639b2ac86ebd96f96f7eab60daea44eba5a2a551436123ec6af1858d6c9c9e421d98b7db17258af1aa1618665bc04645d5b0c2a5bc6c16c7285a4c645fc0aa5dd222e09090a4240cef86f6c4a7c1c98ca76ce47f9feec130fb3dae8c9442a3806c505160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a07716794d74eee6ba6553939624596f8cd3e39ddd3fa4f15dfdfd1eedc4c29ea7a029ec2cf3aeba1fb828c3870ce9172ec2955d7e9467a7aba64fbe91528277caf502f89201820327849502f9008505598d0c648301241394c1eb766366e3c0916eca6b6160a372c742971cd480a4755edd17000000000000000000000000ed5c00132ae1ec02a4efae1b4dd8fb84e969e347c080a06ab8edb04b3f5424c8eb9769985622178e9b3b1a5a1edbe2579136396febf4bfa03285ae1622b1369010c209c4984a0ee369509eea58d39be288dfa5c98edb5b8502f902790146849502f9008505584dc0fc8305405b94f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b873c6568f12e8000b90204666c00aa0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000ba09eb53fe4a4d546b0f877bafc40acdecc5e42351a81edd95ebf6f52ce6e392c8bbc00dd4dd9cf53a31a6fd7c8393224e2e29e04a0b1b990120c4a64236eecab94ac6002d224952cd98a693f73b8dfe9c397ee3956485c32a751bd32538c05c0992b37cce9d1cfc962441ad7c330e89fd0a4b8d30d5de12b30ff16653661cdd8f47d4d2983175b9545d55cd7942df7234050884b3c91b4b1a3ea473f8a5a08dff3a4e6c30dee90ccb3d334795ce9bc9ee201691020e87c7a25e3177a40d4089bc345577c6cb0a8cd1251c96094cbc4337e4a67344fa6993838e43abc3f60586e1aff4e550b5383b62ece606f193a21eb2ea67c3d75bb0768790978af2b6773f0f834887345df96f4d60b5070d09e1a56b26f122a3ae81b1c3c2a06b6a29f64ff580156337097fc727277780dfea1f31e0683a283836f3d0b2f2f7411b3140ac82c305353be4f2b4e862d9e60a89fb2a46014d041bd09a0460049099bbedbc290c001a054b89e51ca65462c1bafb2ae64b1faca06ef4640510781f1f9fd8518f97e3e24a013eaac50a8a9dbb8ef34131df297e19da4d6734313daa68023c7656b6199e26f02f902390123849502f9008505598d0c648304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bb47903ecdbfb9c2379fca96ebaf5d1924edfde83c422d90e43e5d836d79e85380f947e2920086274197649c1092b26a22c06af8b85f5e79b93f5752e77e1eb7ced833eb1d944639dac5d6576acac9527fd5e50b3be3a5f0bdffac713d622b81ca8c9ce932c51b7569e70fad2b348efbfded890dfaf8a8b43f9ef9780c40e47316f8ee6aca360d4cc0b79651c7c4294544080e7c14c28b91bdf155de019bdec5663e97180e1ab3461725b593d992b80fe8cdbc1939562c814a2ca5d174874eb00286b4cf4b050097d14205264d5de8efa790b96fbc3b6ba991b67d2becd1cb8d3874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0c800a7af45c6f3811235299a770e407088f1146d89e81e7aca762f857b7fc09ea04e77c20303f3501167f173e3d577b495bb194a49169de73a4f3f330ad8583ff802f9021b01820267849502f9008505598d0c648308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000a870cb2539958325415d2d00e75ae260ccdcf25a05512fe371d96e687dd6f6fce5b9b7de407d3dadb41f5c6c3de92244961cc0f322bd71456c76d643876f6c1d2a33837566fb054d78a3870d660451d5a9c6bf3b841e52769087e1104a9587f0392c41e6f679c59d57c7581eef926e696483ec17096750a2c3afa8ab7710596637d5e5d9de9a0bc0b6593d1b691e70105216de2cbc5e8dae6e4bc358c4c0c6951cf2c918cfd27b5174f472afde4336532960910721cd7680ab2a8634341ec8cd62e80a0dde9daae04d4d607589027b4a67ac9ce47b5db4026e967ccd38695dcec4c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c080a05896498421d289d051b7740013e122c2b0db1e4f365dca0232fef07aa3ee0c1ba06d88b20b1ac4720ad30cf935b399982c96d8921baad8da360c953d52ec7c6af102f902790115849502f9008505584dc0fc8307940894f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b87b5303ad38b8000b90204666c00aa0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000b87f28d450469ca40d68b214a8107ed9b3edd18d115298001ada5baf1ea0a296f7e951212cb74c893b0ff0091745eb8a73127077fe4de80d9c4fedd01653dba00e796087c9034e87201e8b11ba62a935b6417af09120707df2a72486c49e1aaec8e976b37a00984b38ad93aa0f8e3d5d4887415ae96a95a544acfac9077b262e3e1a5af6305d5ace328c07ff321f9b2f7788e0633950c49099f4828f06a005a984e5367de50b41d4429acb810b3d1a3aca860c1b8bffce92eb491adbccd8d96238e6a5ca93fe49390189db8a219f9cf7a18df3aa68c0f80ac67a4a6a1d2d7fe72ac29f282a4a0a93f7e72ebbefd663d620e6691c6b6b9917b89722b1a8cdc4226b82cc07d0dfe58215e406ad5d7f66358ed9f78cb30a738d01574d8a1eb14f63c0b3111eaf415427ac74f8b8b68fc93df5caeb67ec32d8e4105883e2869c067a52c305353be4f2b4e862d9e60a89fb2a46014d041bd09a0460049099bbedbc290c080a0d4faf69b48527bdeac694d47b7107565b04aa9e74ae4363025e3c1757d96df8ba0308ae86b7d46e3796985d907afd25e4ac2162736e3c4bda7e844f56d95288f9202f9023a018199849502f9008505598d0c648308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b2828f7c9fd939b43c663236267fe6783d7bd5730ded7608d1a52acf9df083e6f8d400102777d6ca3e525d68cdd475f80393d932e84eaab89632565a1fdfa7ad48f06948d9a3cd6c79ac5e38b4610a9a17c0662f02223defe332a483155a68f0baf135b77dee36d2d1080cc1fbb2750151cb9c68c226f7a142efbd04241071b55a443a479748450adaee230a98fae2a7f7e83ae41978a4a06a7e255ba23e5c90663e97180e1ab3461725b593d992b80fe8cdbc1939562c814a2ca5d174874eb00286b4cf4b050097d14205264d5de8efa790b96fbc3b6ba991b67d2becd1cb8d3874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a068385999581b69256bd531cef665e98fd47c9298884471edca9fd711a812f9e9a067c0fd0c8315a541df6f194538eab93243b4ebdf8425e2facbd44acd794107a602f90239017d849502f9008505598d0c648308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bbcbf6577a0ad813b1dda2ef03abe024cc5ef43157a51e3e1ec05041db63acfa8d6a068bc71fd59a0cc303c5361a41df57cd13288543fdcef1a77afeb8efb3b8e43d9140cb52d57bbdca10e423ec665012fd616959311e3f04e7db9acff9a9677a339276aa6533a11ba146862d6531fc5eabf801db09512a75f91a040303b5ec89ec43392ff7d810d670be3bc309602b40ba4f105c85f591fc1e59193a6595ea88f4dac38243fcd265b82a58d8be3b0802d037e437f0b91942e1337467b6d2f2f11686f88b4b1efb63f3d02102a0bd8872ab8be325fef22fb6b35d9cf8ea8d81a6ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a028699f5393b159a057fe050280fcb59ebc13887280b78128e9bb020755d3d64ba0369139a0294796ae56c241c8d1a48655e61514c9c8cec15e4b58bb5d25978eda02f901fa01818c849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b90184d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000996ed02fa98825bc71a294397b5540893321cd914757817689cf750555985a03a78d4213308735bfc5cedc3dbe9ff4f8152438f79c153ec156fffa56403d9b348a6120707845473c21df36c848a6a1093c83e798b52b8d8fab8f21dade91f642d698de7bc58de4b95086202361c53dbf05d3d523768f78dac4f6ee41ad9da78dff94d209e5c9915122dedd3d314363cdd949dd6b4ed2a6eaa201ec16f081bbaad718652425e447279755764eaaf850248e059ef4df20260a4cfbfa72ca14c8fc9f6be2e818d23222100f5a2543c3e0133f0dcf5dc686d4918328b86adeb6d38594a82199b3530ac248b1c97de1e8cd1c656efab7035d8bca80a6e135c4bcb077797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c080a0e1a92a4d813816fac36a60e7f1bc4b182070049d20cccfe52fbecbab91294feaa018877cf51e75bed52b242ad79d7f234413f47eeceef8c17eb9528c11674670fb02f901f90106849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b90184d2cab056000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000009cdd9221a6aee417e5aaf62d27c1f7334392a8e9ffd6b44404f2c5863524d706ddfe4989c3323bf53d08ac7450d979fc0a92f54dcbe3cdd51df8c6f66359bd94c0d3669e0708e9542665e4396247ba04d243c81b4479355ce2df33888c9e0b50504b5e992379c4d3ee343745728e612df3e9676a94c905a59be7b1f3beba3241d2fae1249bd417a9e9c0f5c8c8b276c9574b7637e276eaa4c8b23d4cba87debdd718652425e447279755764eaaf850248e059ef4df20260a4cfbfa72ca14c8fc9f6be2e818d23222100f5a2543c3e0133f0dcf5dc686d4918328b86adeb6d38594a82199b3530ac248b1c97de1e8cd1c656efab7035d8bca80a6e135c4bcb077797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c080a0dc3dd58a4c48357a6a13df8609b5b9bcf483e0065a7b085e3545daadf9878802a025ba78f1bd74bf057acb403721d552c4b8717ee637a42c6ba88ed2b384ef020902f8720182014f849502f9008505584dc0fc8307639994f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b8084118aa48bc001a035951660be9d05c721d1c7fb207885a9fb4919b89988b7c26e4046a6cbafa53aa01cacb266ad889dd48d1d96cd975212be94e78fd3e27514b5e34534e1bddf01a402f9023b0182013f849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b2dabbc492dd7b3ab54579785a50425fa520aabe52876de05f02e245d907717519cc9fef179ac2697fb16da35800f6e3c2d1e694adbf0ab496b1ee7ef9f41fed3d1d2e3656c8917a08f03cd7fc624737d71ef72e1a9c878f6d2b8c14120dd01db1b7b68d483e594b2b049a510108e8384fca4a98b0c9a65d353db714f1b624b53d2608d423a97ead4a46eb0ad82db90b76ece811cd6ef62d5395c941d88881a33368fce61468f4a0753b448f8ce82ddcdf2fd716375a1fb922d174d111abd5fc40f91a6423dba6a49f6944b28d8c41eb2a0acc874bd9cf07636081f448771b2f66ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0e141f6cfb4bdc4b6a6baa937a08db6154a0db1793bfa431b39254fd1cf7dfb46a01ad32a03bd09e0a31430773e16b19a00b3e1d65d35fe14aef7ef32ae1bfbada702f90239016c849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bafb20f5c1395a42f8d3143cbeef9c3e19e40efaa68f06513d63773e3f123db231b730f2eafafd79af940ee7bcce5c87a49c3b7f84aee2602d39ab50477116731b7b14df794dcbd96f536f2b970303a27eb5ba2f35971c3e746fc8acaa750b4a4610a1669643bd11695c4fca06549f7317186c0d289ae01671ba762c9fe5a2b179ec43392ff7d810d670be3bc309602b40ba4f105c85f591fc1e59193a6595ea88f4dac38243fcd265b82a58d8be3b0802d037e437f0b91942e1337467b6d2f2f11686f88b4b1efb63f3d02102a0bd8872ab8be325fef22fb6b35d9cf8ea8d81a6ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a0e1d90897bdafd53bfeedee54db0a06b92249f971c5cb3e43b1339350a97d2cbea070f825b54920d4d228a70c4d66b54d7b918439aa06cf86a64bfc524caffd162402f9023a0181ad849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b5ee211edd36beb0ed1627ab99989bd9654d3d854f7f9473e56c2a94e8aa5c116c21bcb4f9ecbd8391fd7a9118ce480ddaad6d67e15f7e14884072844c88fe9d609671924bd7d9303eb8d90875a726aa2335f1a0f5100e828c9fbd284ee480fe39ba171c6b404809e29f17bbded432e8fa50ed36a8081333b1061d9de19be10aeb2f94beea3333b68d58665b81219090d402da83803917a75e14745a56542d87e041322757cc78e51497468c963c098e84ae8e960e15f8345672c6d16f97f9cad7d510e7bd2727bec626207f433b8ee3cb02172d7e3d463087da63edb1aa1e51173bb78fd28784e7e398a646408ffcbe410c7c3aa32abe694422aa038737ab8e1960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a0f6ced6e990458ba89c88059ee542f270ebfa721595180bcc47f778a78a20def6a006022a2268cae4133cdaf8ae64bd8230701cd9e24851fec19b329e934afd685002f870012e849502f9008504e63b75708307741094f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b8084118aa48bc001a019f2ec1a1471a52e79438163b026c545cb0a933823023893c5f7828b89e02546a05123043e9f4470e5635e095b9f3a23112a6e5db01f82a4141244db4d04f7c2bd02f9023a0181a8849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b3fe2b1c261b23c6db8d041dce4a6054c03d31f7f372d903397f62ed35d17132c9cc9fef179ac2697fb16da35800f6e3c2d1e694adbf0ab496b1ee7ef9f41fed3d1d2e3656c8917a08f03cd7fc624737d71ef72e1a9c878f6d2b8c14120dd01db1b7b68d483e594b2b049a510108e8384fca4a98b0c9a65d353db714f1b624b53d2608d423a97ead4a46eb0ad82db90b76ece811cd6ef62d5395c941d88881a33368fce61468f4a0753b448f8ce82ddcdf2fd716375a1fb922d174d111abd5fc40f91a6423dba6a49f6944b28d8c41eb2a0acc874bd9cf07636081f448771b2f66ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a084b33cd09962caca06ed38a42ee5c2231fc4e1b89647770ebac1ccdeb7189a13a07510d86e07061fe1f5813bafa0064f53cb0d489fd2421cfcd724a526b804b39c02f901f9011f849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b90184d2cab056000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000009559dad900cc3ad4d01e7f191095e1ce31b2956edf367fae9f54995c596e4a5ab8bee5cb9a81d63d0d7c34a1d93554ef5401aad078404b80cc823916ba299c3e5fd536448de02a1fee53b81a5318442e9f21ed98a1618941e4ae9a5136a70d0e33df3d1bbaeba880bb2bc076be02a1f7fa95773e25bad6614a5e98eab106fe498d33d04bcfa9df33b6b428b996bb338b17cf32cca2a3da2fc4b93b0db7860ddffb4e8f769bd74b61d12bab3416ebc55d41ddd709a109e5844c90d0b781d913615f86865b103c0cf0b5920cf393a4fac1135bb0bf631f329af77a883162d3c97dd4a82199b3530ac248b1c97de1e8cd1c656efab7035d8bca80a6e135c4bcb077797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a024bcf783994f58587c1df76ce7f6b21a83d1329735f69e26dde59802d6ea3949a068581d4abafccc2da42c05c67694be27d532b06171cbeadc13b04936c46dbc0802f9023b018201f0849502f9008505598d0c648308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bedea750191b0cfad53b645cc98ac996d3208b576fb528db3d7f62b214850c758167bce595700e5b2c974044ca0255281e8d7a4b169b44bf5146cb6b6bd38bc89d9f8497304a240064cbc015bd4e60ef746c9d8c811123971b71fad55fa7ac59a22c21be9e8ec837d6b51c0241688250fdcb57bdd0a6c733f0d3e562e841affcfb2f94beea3333b68d58665b81219090d402da83803917a75e14745a56542d87e041322757cc78e51497468c963c098e84ae8e960e15f8345672c6d16f97f9cad7d510e7bd2727bec626207f433b8ee3cb02172d7e3d463087da63edb1aa1e51173bb78fd28784e7e398a646408ffcbe410c7c3aa32abe694422aa038737ab8e1960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a03beb94d8969544fc794fd1601257a17016f743f0c454fab409aafa7ab9ce9841a06b2ab554d706bb7d96cc410cad6402d76160279013fb45086a3e02f9566fd6a102f901990133849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b90124d2cab056000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000006877f8605a46ebe8a5b2e643a1dc49c6621647363a64caadf4e8c4a9d2c03f097f94d209e5c9915122dedd3d314363cdd949dd6b4ed2a6eaa201ec16f081bbaad718652425e447279755764eaaf850248e059ef4df20260a4cfbfa72ca14c8fc9f6be2e818d23222100f5a2543c3e0133f0dcf5dc686d4918328b86adeb6d38594a82199b3530ac248b1c97de1e8cd1c656efab7035d8bca80a6e135c4bcb077797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a0fd8bcd687dbbc437d0e95b7b62909cd2613c43823425200f1e6989252fccbfc6a016ebaf9558a6ac3cd7707c32352668dcb5cfc7abdab163fbf12650e8974a266002f9023a0181bd849502f9008505598d0c648308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b28c2441231191a521621fae6b54b06211b381f4f11ca019e2c3c0814929ed78fa9eeaf286a1b3c42854a642ed1b42d38f6d5c47d5e3ca5d9d1a83eef4edc5d01562f0398d9622d9871ca546c9bc04fd3e0284fbf1d3e94e23b25d33908a3763b22c21be9e8ec837d6b51c0241688250fdcb57bdd0a6c733f0d3e562e841affcfb2f94beea3333b68d58665b81219090d402da83803917a75e14745a56542d87e041322757cc78e51497468c963c098e84ae8e960e15f8345672c6d16f97f9cad7d510e7bd2727bec626207f433b8ee3cb02172d7e3d463087da63edb1aa1e51173bb78fd28784e7e398a646408ffcbe410c7c3aa32abe694422aa038737ab8e1960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a0e9aece63cc4761ff65a3409e186d8aadd16d9242706cca6095a8c7aa42ea4257a053e1f08d68493d93e7c6b7b5a535155a62b676097127b8b98754cabbec6aae7202f9023a015e849502f9008505584dc0fc83261b1194f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b880713e24c43730000b901c4666c00aa0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000009f1bfd2e804e37b157fec5f2beb37277786a21e94fba1e1ae209cae9b285a78ef9cb91b54428bb28230c788dc6428c9d09124390fbb232076c46049386ae81a43172bda82613d8daf5b7b091d0949f9e2c58e9b189343484e395b4dbe8e9deb74a26807b00bfe996ea4517a9b7d1cbbb82d23f99487d7a362b5dda38fc611fb589418cf0aa125bb90b1b6e29a65436f8c87fe17f014c8f38fc1f8ff16609b834ea0d041a10b45c160b9c53664871c7b10a02f343590dc45fe288099d4fca2d3678dcfbe23f194f8364b9e34635ecd5b474ed7836af67dd6cc5a39dc59202e3aacf5059536d5011814734520e7d1edbeee0f311d266f22cc441348ccee2ab53f080442ba98e5c54c5b145def40caf6cd211fc48522e8496808d921817efe59c2ddc001a0363aa457d18ffaeed29b608301e59ec2a25a763bf78ea07361ebaf355d3eee33a01e6765b34d8c09ab4979df081c92090b726c25083c08e48a4039571e8d1b9e9902f90219011e849502f9008505598d0c648308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000ae085cdf73d637ea3f73699d9bdbf81fc9dc55f10d8c5e09eb811f5ffe9bd455fa060fbe0f5f49580bd235aa4c61a66ef8dafd2f661320122b5bc83dfcab63a725df56dec48daab045ac60c8897583b114d20f0705a155f40935e7628d2a66cf60d14b0fb6ba649284d60ca4d5fd018f80ac8d8bc3108362d3522aa5768049b6bf0c2dafa306040fa2e8a7543fb78dc27bef039464182c5d4ef0f4932f43d03826c6b4d327b382242e1b3d577ebb1f93bd3d4012fd971b348f0128322b993929904d2d3a1c94affb7c27d59d54a29768078ad34fe118e46fde6b86664dc8fe3a84c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a09091ababe9d0f3c9667ac9faf36b4a10fcb88dec054002539eb8afaf2005c15ea04fbc7ca665c123a9065dd3618c5bc19d54250c7fe354019b749f057e640b4ce702f8700113849502f9008505584dc0fc8306ff6794f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b8084118aa48bc001a02830be0700c4eb240dcf8aacfb2d49ad5c6cfa525bb336b9b369aa2292975839a028789b6be45c3a514b3a0461dcc298b2871102e3eaedec9f0b2780af5c8f091402f90239010c849502f9008505584dc0fc830536ef94f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b873c6568f12e8000b901c4666c00aa00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000009d978ba13bebdd0420e808733923129d2e9197f382a25e3e61e17f1e1e46f2334de30cd3388d1a773d9f5fb4b333ce98a39458e4bfdfe81ee6bc9ff9d3bbf42f35787958f37f09e017ae48de338e391323eb3817a09fcd2f084d782df532ef768ae58c0659cecf668d4c1616de550c04e7dface8b951552580a4b77f0c3e70a87b742dd0b61e086f3e5aef31170384d31ccc1ca8fb75f2913a6abf4f697440622293fc46b92e942d8a1028494f50020d102f9dcc6bb705418fd2e8988337c3fddebd0bc0b8740df88074b3a73716023fc3e52ac02392e091a51f18872732a9c2d47af97052ed8026631afaf913ba92ead0f95804b5afbda8ac5f3e10f5d27fb240442ba98e5c54c5b145def40caf6cd211fc48522e8496808d921817efe59c2ddc080a04f7accfa0658d70c7bfc91e2f6f51387929e70f90802e49f762e15afcc0384eda0690f1971a83e3c7b456cbe62f9cab8dbab58a6fad6e1199b834233555f8eabcf02f8700108849502f9008505584dc0fc8305201494f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b8084118aa48bc001a023de1824fa281e2bacdea39955e4addeaa6525d9b9cf995358c65fe00996bc89a04d28b03452ce2f2a00c59cc68b7267fa6d67341a6be08a86292ced61c6e9d38a02f9023b01820107849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b03550d7e417ebc11f274e7ba4d9a1df4351fb264416ae7a230103bcde0396cf4185b06f0c0178b1756f08470c4f1e29b4d692383a7dd5d508ccd24aaa2dc4b17ba3d9ee7ad6b914ef0c6ce0fd3f76ea8f318b169143e0d2aa47d2ec5e9c3c3db1cda86aca26bbb0c88b68d60cc2dbfeee0ee5e5568e40c2485ca4c0979f0a798361792b864ec7193e05e2902dbb5c1a1dc97b11e6ba2425cd85fc70bfef0ed26340bd88da4d4ad7f678cdfacab3a163c4495be773b266761f072b5775a65c45e6cb6b274fbc933d5161d201b57d1968b3e548233d94e0918b29e3246db24af10874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a07cf5f24567f7d7f2adb3b3468ac43dc3c4b1ae1e82dc966eb0c98737f181f49ca05b07fe8da9b9a78f5fc5f0c7a3a27d9ae2156a707049cf64d4f6b0dd6505c16002f9023a0181de849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bc1731cdaa718634fa805240267f2c7440a5eeec4bbba1ae2f3b8291c67e5ddc124e93441c761cf8775c4802619ceb01d51d8d635c866447cab66fa5127880a253dcbe248a07bc8251b951cd4b3b6faa63cab80808d456c6b71ff7db1a87af0433ac73431e9c2315f4a9e75c67b1d4a5214ae452ef8227b0c7cf5364e6747ac4fad79cc52adfec7aa2fea4409beed20fb4253bb683a7cf772aa821178dd4e4b64a27e7fe6f5688081767d606e6a17c36d1a8271eab6b7fc2ef47c2306091e40a611686f88b4b1efb63f3d02102a0bd8872ab8be325fef22fb6b35d9cf8ea8d81a6ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a03624d5079f9fac64143cbf62369da65a7402eae7995e79234ed0cb71a86ed78ba027cad9bc4b671c5d439d0f6e115d98535c34416698d65ac2b167d4cbc0b904ad02f90239014c849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bdfe2b215ed990fd933ff40aa6b470585f712e79735a97ef89b9c8ecf2415e27c2aa4f180d6dc6ed3c2ed9e30994fa6bca520f657ada9277d5887af4e541f56e964da476bb44d716ad470b26b162a0e8bd5712c18b4252332643b04aeaecf01b95fdf04e0e639d8cd931bced7b63973c735f3660262ab7b674b3670c146bafc32a9fc4c9d4861258f42a4bedb4d17e6a531f66b6a3818b42c08d1a89d1b58222002dc47c65737484bd364c502208fde3574be9e39776789488a862806ea233907b7db17258af1aa1618665bc04645d5b0c2a5bc6c16c7285a4c645fc0aa5dd222e09090a4240cef86f6c4a7c1c98ca76ce47f9feec130fb3dae8c9442a3806c505160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a033d7f0c877c912f7edac349de00d14e03233fd9a21d2d5c5bd4ddb421ada9bd6a055fa14e1fd2f39023eae7367a9ec771a3bdb1a1ae6d1b2e99525b5d79e78d24c02f9023a018195849502f9008505598d0c648308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bab7e481a825814e1d99b6d0bd7692187dab1917ae407c716b4638f4d4e562738840be20d182aa21dfd006d26115b64992ee21d17170be77ffea4f0da024e64f93f995517d9918c997427f568372b554c650a64996ca538fd6ae05a40e3b8db54c0c7dc6e84432959d8e88803edc5529acc63827aa479a7b01237ae1fc8084425f64ad079f9b914d3b18d1ccbf9d36bc01b0aa22b1fc63b73832d5c38bba2acd65549830ec99dcc2b6df63619d785251c172ebed1665f42fef02ebf9f4a7b13d926f0f301aede479d9f73194da3e2012a164881fb2915f20b57a4dd7e29f06928367afe706187da4fe6bf16d387642c381960f3653635af3e01da5990a7715edafc56676746ed65e7e0cb2e85384b58a35f638c6fefa696d8c6ee519b7fcaaa602c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a09d39e25ae8fe84578b32809cf3c1925f92292147d95d3676a2d5b466d8530de3a05bc65c01d1dc7881d77bc81ca6ad3d9a075eecb8a3b1dcb3e643fb076d677eba02f9023a0181ad849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b4e03a29942868b08ab540dac1c97e5de3281dd97e72f236cdc6ad209fbd0341bdb0b46751528d1967c5f486d1f5b4fe2da99316bcf738158c3fd8835473af580cb5980f67eb63cb64d3144878c512fe3214732c45dc44006369691eca9adffda3a90319b36295833e302342943d4433a8373940bf96835db19a51a35071046dbe0b04471e38d438279becf0fc1aab239877a95f1629f992c2dc289eac8dc4760a5bcf21393057e42dff5aa97a7f8618fa048885409eee239831ea4875d50215eb3d774843f2f704d4b9b833718e9a22df645e4ff2dae134c84af306237fba47b5d2432a83ea939195e27b727120240cc6fa83ed6cf36a74616a2e8b2e72d5f4736eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a00bd9c1947f7649852eaf4032b0afbe77da99cf0dc6c18957a72eab83845f249fa02a419c78bade4eb153716c44d95f5de13025e801418d3447abdc13d48d494ca402f90279011a849502f9008505584dc0fc8308b5d094f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b87f195a3c4ba0000b90204666c00aa0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000bb3f22ad8ea9e70b75e62c8c7adc4b3aa1c542e94606d7d02c75da23272fb5ecc82dd8cac11e3d7bc1d01e1640731e11b861a49146ab9cb959da31e932927e3fd5f93669e431fa3c499b9b5c25e2f72e6ad64574690362a7ee400fdbf00d0f846205af47fcd96dc251a27724191a73b720f71687f53dd2bb8a9dc98f8c370b56147260205584b26bcdf5dd2d486db74ab07f8c095d5106db78bede89a7b4acb6124f2c26fb0812e410cbe97f2a38f9ccdf5ab072620536597f08b6359d4eb25200e6c4248e722c42676cad5ee5a7c6bbcb02e787ea071ed40a7fa79765f9586ad39a965869d76c3a71d2c74451314f38fe0dfbaf382298368bccd25fec916d3c2a9926dfba95a258d32f0f4201888a0c5a15dc50be540b6d7a523548b99777c040b3111eaf415427ac74f8b8b68fc93df5caeb67ec32d8e4105883e2869c067a52c305353be4f2b4e862d9e60a89fb2a46014d041bd09a0460049099bbedbc290c001a0c08adc09c4b97ffb7e6a118baffaf79ceee1af1795fe5c1ae2c039c57d04436ea008cbe599f7a2d07927394f448114dc63aeba9e7aae59b9deb30dac7c5f3a050402f9023a0181fc849502f9008505598d0c648308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bd959aa18190ca73b6f20946e6c39526535466345af139cc486b23a54e635eda0e6d9017ce4be3ac29eb61a31ff9bc35ae8f20c08b5d811769f885068a4c1ca91b41573e21ef2fcec436d0b504aecea78583bbec5bb6873a250be7412e598b4f09401bb360c3100175b46dd722a8088d82e60b0c71a59d301b81d7bb7cf7e87c7dd7082d9a12cd7326d3355e6cec5fcf4ffe87221a5341f03a3238bf4e741432b59534ee891dc7b31c689f26da2d42c9d5169363891bad63efa35390a39433d4a1e43257fca161d36bc6af6f7c08e0a55f2644a631163b9c16f0d890de7f223cb367afe706187da4fe6bf16d387642c381960f3653635af3e01da5990a7715edafc56676746ed65e7e0cb2e85384b58a35f638c6fefa696d8c6ee519b7fcaaa602c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a085829d1f49cf4cb058f60744bd9d7fcc2b10d38f86aa8879f6cf9a051d16b88ba037a29c86225563115070f41835ac3b1e2cfed81fd19ee15d125a456c619cf25002f9023a0181d8849502f9008505598d0c648304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b9626291ccde3e734b4679c678b26cba8551f1f92f84f44963f65d3a9608e9598be5f50e28b64e7927c627ceaa2925c95a594888586ab6257d68b64d898034b0c7c5122a241bb52d7f8b94632b4dcc7641e7f1ecaa157628d50ace2d436554028372755e99db10d981dc9ae18b6f26f5dc24451a8e9565c4ae7cdb4570a55ac4506ef85f770c00923b222c953cd33151eb48190d06044fd1d00edbb3a835da2699262acbd5671bdafcc4346e225a5eb7e7f6ee95e8f415b78be64ea5425a447a46cb6b274fbc933d5161d201b57d1968b3e548233d94e0918b29e3246db24af10874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0ddf7b3d4bae285aff45140358532c0caa833bd6cbc22af7319c3b032d4e79690a052d967da6febb2f71da8fecb3779db1c737d870f13275982f5fd58fed1bd6b5202f90239014c849502f9008505598d0c648304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b22b7d1d09123f187b961e90452aba6b711c5cb2ac6f3bddf1c721519ac4757c701e90a628ec97d4193d8f11f75ed1356179d660af0b336f19c09ffea003329ff8f06948d9a3cd6c79ac5e38b4610a9a17c0662f02223defe332a483155a68f0baf135b77dee36d2d1080cc1fbb2750151cb9c68c226f7a142efbd04241071b55a443a479748450adaee230a98fae2a7f7e83ae41978a4a06a7e255ba23e5c90663e97180e1ab3461725b593d992b80fe8cdbc1939562c814a2ca5d174874eb00286b4cf4b050097d14205264d5de8efa790b96fbc3b6ba991b67d2becd1cb8d3874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a091c47b1d5a8628fd66e9bcadf2ee9a36d5d4b5d0c9cfd61196181166e3a6d843a077198438f7ef8165dbbda66042502c3c08316c3178039618337214f2780a1b4502f901f90140849502f9008505598d0c648304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b90184d2cab0560000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000094be7351f4a14055d843b16ae7fcc27c3496667e7367ab20bdccbdb1e95bfd96ee1c70ab57dcc574ca41295e85942c1febe38801a116c77e84fcf248815400feb842c9280afc0eb24b286473dc6ec60d11dc9d669bcb9bd45d7cb86000d354cdffadfa13b13e721ec7ad89696360858786b5cda930ad671e871f67f2811dc4b08e2fb2c969a8ab4ad0920f0ef7558bd32d4685bb0fbe1121fbe8988e7774d7162f91aa3f0d43e208a12792ddcafece2badc6ceba90ece955620c9da8009eef264f86865b103c0cf0b5920cf393a4fac1135bb0bf631f329af77a883162d3c97dd4a82199b3530ac248b1c97de1e8cd1c656efab7035d8bca80a6e135c4bcb077797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a0a2c51935413a14c1516e7da63eae5907d2c8a0270ae04e9c7c76731615c27c31a0477b14756d724bce01b3a812bc50a805c5dd1698236d35c851ea99f3056da27d02f9023b01820152849502f9008505598d0c648304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b635d6ce272c67784b2a789dba352d1091ae1848c2627562e6e109435868c9bf29d441e8cf9a8de7fdba6fe0d5bf524a3e125737e2c92c22a4cfb684fe3ab61e1a10c20800d2e62bcba930bb7d7249c1811fd1c97a3bd8c0415649adb3ca013433725ffdc3de47ceefe163f13df54cfa7b398c9171b53598ebf0596009bfb0cfceed0bdf6114248d7bb901fb3d726a53ea3ed244bf39c5029b03d6828cc96f37ccba6d2ef29cccca4fa453062395770480d56588111f94b9615f951fec3a4c57be1c095839abad83fbb732382ce6110e4767327b558f173562c36e0250ac9f3e15d2432a83ea939195e27b727120240cc6fa83ed6cf36a74616a2e8b2e72d5f4736eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0a93f711a68db52306b540c14e254585fb97554533d8b33eec198a3c8456b9d2ba0425143660da44f3f923f50fd9e76b3b8ab1c64e8276d7f10f745f31fe91b6c5302f902390132849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b0605f27dbbe18355420e4129e59bfc8797ed2cfaf7a3953455ee4ec8d2df9c82ddc04e9555712c5218211a6e2a3aac3de33748c82e25d5e27125132b171fdc57095ef874f8e9a4a0502b188a1ae9ccf6adfb75c4395db8eb64ca83a9666502a68da992e0e4bddf6c591952171335ccbc862d64ea0db7ec6c4a3b5873c74107c1ebf7682281fdde94de5d590f2a34b1a7e7b5c33e28eb1990fdd48d066f3818d1276ba5cfa6cacebec4c356545aabbfebd9579bede1231b857e2baa7c83e7f22cc71f093cbc8098834ba48fe552a93d701ec4d36b6a097a496858db8cdcd208379ac0c400cb6837182b745f26fac1e87ff6eded4c92365a9807bb2150ecbc7121960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a06abb0d828df4d875ca00ac844ea72a8ab4ae05d88ef7ddcfeba9934f3f9c8acda074137e3ce2e0802e52e851f662832449a9d536053440fc7c60883506a3090e9902f902590115849502f9008505584dc0fc830262d294c25eafabd9946abeabe1c9452da046b40f19e39a8738d7ea4c680000b901e4642d4214000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000b8faba8b4774687858ca53f09ff6fd09bdad48ab731f767f73bf9535c7b16bbc68585d1cd2e4cf3a290b99b0fa866029bb020cb02b9b3b4f38ee5927e00b368db18cc69da7ef11b054756d2d0dba25fdbf269d2ad737eedb6851329a1ca122cb3e359f2767acff23f4ac5b11a89695789ff9f98ae2bccd02b43dcf8f50f03302dd7025e76856698c2ee9b1ba2e95cb2cb3b765ce2313865a342fd8558d62175d9a32778ef89742118439766b311ef4cf5a4d328b7344f327ae67a32f9afb6a940e05cc2e7b9f793229b8317ef221cbf7465640e0d6e3c5f1ec209c037b10ec8420f1bc8161156421a1c19b9a708112433f6cb4942a2cecb9b36f438ccafc359d9605bc8da2b6c8af52a524e946d908add61fae75d500db43f777b5bcd16606d9e883a7f36377aca34b243adbfd004defb867d541a7c419d1aa74c1239a30b1660cd373cb958eada7a64fd9d464606bdb8bf66011af70051e2d352eb416396163ac001a07856e71d865715d934eb14d62c5472ac3ec70f9ca91221427aa20a55968fdc5ca05ae37f7629482234d1bd23a0d7f738fe4a9bb446ff8a7e81fc039a33e787a98e02f90112016b8502887fb6dc85033cae1ce3830151f594485d17a6f1b8780392d53d64751824253011a26080b8a44000aea00000000000000000000000003b198e26e473b8fab2085b37978e36c9de5d7f6800000000000000000000000000000000000000000000000000000001dc63df20000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000038c001a09bf7ac9e214e9430d9652aeb310db34e28ce2eaabb2786976ba1d92e04328824a04b40c7315d265588aeeef4b27aaa52311477284fd7da7571aca243a267d5843702f87201058477359400850342770c00825208942c35f9a466d1cae63d46174120b1d9edd648648687fd7e3b419a96b280c080a0220d14ab163184e70a277e133db3945bebccc2d14e0983b1b02255eaab030046a03de8350f06c5505bd81fae05a46e6a347f2b0b14541fa9f247fda4fb3fa65eeb02f8b00114847735940085041a25574482b62394da4dd9586d27202a338843dd6b9824d26700678380b844095ea7b3000000000000000000000000881d40237659c251811cec9c364ef91dc08d300cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc001a0f7066f9fa30c3104a9ca1f3710625dc4165214d6b799eb1e677de212691addeaa050a85e0730ef42da12278ae6f0c332c5de60a433b02d05f786be0acbfb6d9e0602f87201808477359400850342770c008252089461b260db23f294330adadcc9f7b25e23496bfa89870f867de9ab200080c080a0a704102fb39810e0dc1d8bf7e116cd6868961c9e7b2de57f6f123f2b644fb53ba019defcebbb78d4b7fbf033b8bb42dc91b0814746fe154d07869a224badebe08802f872018301a53e808502ae870322825208944675c7e5baafbffbca748158becba61ef3b0a2638807d04a00cfc7c3f180c080a01584761166d6fea147f4dcf8e544319c8d664dd394ccd66f47a2fb691081a974a04b7a4d9552d1a224aa2abad57a422e96c059c195e5b71498c20e0be4ea31b15c") diff --git a/cl/phase1/core/state/cache.go b/cl/phase1/core/state/cache.go index 76d71aa446a..615d253c527 100644 --- a/cl/phase1/core/state/cache.go +++ b/cl/phase1/core/state/cache.go @@ -199,10 +199,10 @@ func (b *CachingBeaconState) _refreshActiveBalances() { func (b *CachingBeaconState) initCaches() error { var err error - if b.activeValidatorsCache, err = lru.New[uint64, []uint64]("beacon_active_validators_cache", 5); err != nil { + if b.activeValidatorsCache, err = lru.New[uint64, []uint64]("beacon_active_validators_cache", 3); err != nil { return err } - if b.shuffledSetsCache, err = lru.New[common.Hash, []uint64]("beacon_shuffled_sets_cache", 5); err != nil { + if b.shuffledSetsCache, err = lru.New[common.Hash, []uint64]("beacon_shuffled_sets_cache", 3); err != nil { return err } return nil diff --git a/cl/phase1/core/state/lru/lru.go b/cl/phase1/core/state/lru/lru.go index 9255f8af93c..b1da5285616 100644 --- a/cl/phase1/core/state/lru/lru.go +++ b/cl/phase1/core/state/lru/lru.go @@ -4,7 +4,7 @@ import ( "fmt" lru "github.com/hashicorp/golang-lru/v2" - "github.com/ledgerwatch/erigon/metrics" + "github.com/ledgerwatch/erigon-lib/metrics" ) // Cache is a wrapper around hashicorp lru but with metric for Get diff --git a/cl/phase1/core/state/raw/copy.go b/cl/phase1/core/state/raw/copy.go index 4e547c71763..909fd3db9b9 100644 --- a/cl/phase1/core/state/raw/copy.go +++ b/cl/phase1/core/state/raw/copy.go @@ -1,8 +1,6 @@ package raw import ( - "fmt" - "github.com/ledgerwatch/erigon/cl/clparams" "github.com/ledgerwatch/erigon/cl/cltypes" "github.com/ledgerwatch/erigon/cl/cltypes/solid" @@ -65,6 +63,5 @@ func (b *BeaconState) CopyInto(dst *BeaconState) error { func (b *BeaconState) Copy() (*BeaconState, error) { copied := New(b.BeaconConfig()) - fmt.Println(copied.slashings) return copied, b.CopyInto(copied) } diff --git a/cl/phase1/core/state/shuffling/shuffling_test.go b/cl/phase1/core/state/shuffling/shuffling_test.go index 2a80c1295b1..435bc7b734a 100644 --- a/cl/phase1/core/state/shuffling/shuffling_test.go +++ b/cl/phase1/core/state/shuffling/shuffling_test.go @@ -2,12 +2,12 @@ package shuffling_test import ( _ "embed" + "github.com/ledgerwatch/erigon-lib/common/eth2shuffle" "testing" "github.com/ledgerwatch/erigon/cl/phase1/core/state" "github.com/ledgerwatch/erigon/cl/phase1/core/state/raw" "github.com/ledgerwatch/erigon/cl/phase1/core/state/shuffling" - "github.com/ledgerwatch/erigon/common/eth2shuffle" "github.com/stretchr/testify/require" "github.com/ledgerwatch/erigon/cl/clparams" diff --git a/cl/phase1/core/state/shuffling/util.go b/cl/phase1/core/state/shuffling/util.go index 0eb6e9e67ce..b277d2f0091 100644 --- a/cl/phase1/core/state/shuffling/util.go +++ b/cl/phase1/core/state/shuffling/util.go @@ -3,11 +3,11 @@ package shuffling import ( "encoding/binary" "fmt" + "github.com/ledgerwatch/erigon-lib/common/eth2shuffle" "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon/cl/clparams" "github.com/ledgerwatch/erigon/cl/utils" - "github.com/ledgerwatch/erigon/common/eth2shuffle" ) func ComputeShuffledIndex(conf *clparams.BeaconChainConfig, ind, ind_count uint64, seed [32]byte, preInputs [][32]byte, hashFunc utils.HashFunc) (uint64, error) { diff --git a/cl/phase1/core/state/ssz.go b/cl/phase1/core/state/ssz.go index ce7209d6a95..85a68cd6969 100644 --- a/cl/phase1/core/state/ssz.go +++ b/cl/phase1/core/state/ssz.go @@ -1,8 +1,8 @@ package state import ( + "github.com/ledgerwatch/erigon-lib/metrics" "github.com/ledgerwatch/erigon-lib/types/clonable" - "github.com/ledgerwatch/erigon/metrics" ) func (b *CachingBeaconState) EncodeSSZ(buf []byte) ([]byte, error) { diff --git a/cl/phase1/execution_client/execution_client_direct.go b/cl/phase1/execution_client/execution_client_direct.go index dc4674fb2ef..1d817dfca2a 100644 --- a/cl/phase1/execution_client/execution_client_direct.go +++ b/cl/phase1/execution_client/execution_client_direct.go @@ -96,3 +96,7 @@ func (cc *ExecutionClientDirect) GetBodiesByRange(start, count uint64) ([]*types func (cc *ExecutionClientDirect) GetBodiesByHashes(hashes []libcommon.Hash) ([]*types.RawBody, error) { return cc.chainRW.GetBodiesByHases(hashes), nil } + +func (cc *ExecutionClientDirect) FrozenBlocks() uint64 { + return cc.chainRW.FrozenBlocks() +} diff --git a/cl/phase1/execution_client/execution_client_rpc.go b/cl/phase1/execution_client/execution_client_rpc.go index 20c5fb83550..82515a2f5fb 100644 --- a/cl/phase1/execution_client/execution_client_rpc.go +++ b/cl/phase1/execution_client/execution_client_rpc.go @@ -3,6 +3,7 @@ package execution_client import ( "context" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "math/big" "net/http" "strings" @@ -12,7 +13,6 @@ import ( "github.com/ledgerwatch/erigon/cl/clparams" "github.com/ledgerwatch/erigon/cl/cltypes" "github.com/ledgerwatch/erigon/cl/phase1/execution_client/rpc_helper" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/rpc" "github.com/ledgerwatch/erigon/turbo/engineapi/engine_types" @@ -224,3 +224,7 @@ func (cc *ExecutionClientRpc) GetBodiesByHashes(hashes []libcommon.Hash) ([]*typ } return ret, nil } + +func (cc *ExecutionClientRpc) FrozenBlocks() uint64 { + panic("unimplemented") +} diff --git a/cl/phase1/execution_client/interface.go b/cl/phase1/execution_client/interface.go index e6aad186ee5..a83c60c9489 100644 --- a/cl/phase1/execution_client/interface.go +++ b/cl/phase1/execution_client/interface.go @@ -22,4 +22,6 @@ type ExecutionEngine interface { // Range methods GetBodiesByRange(start, count uint64) ([]*types.RawBody, error) GetBodiesByHashes(hashes []libcommon.Hash) ([]*types.RawBody, error) + // Snapshots + FrozenBlocks() uint64 } diff --git a/cl/phase1/forkchoice/fork_choice_test.go b/cl/phase1/forkchoice/fork_choice_test.go index e4c8ceb2e7d..4b5c5d81975 100644 --- a/cl/phase1/forkchoice/fork_choice_test.go +++ b/cl/phase1/forkchoice/fork_choice_test.go @@ -8,7 +8,9 @@ import ( "github.com/ledgerwatch/erigon/cl/cltypes/solid" "github.com/ledgerwatch/erigon/cl/phase1/core/state" "github.com/ledgerwatch/erigon/cl/phase1/forkchoice" + "github.com/ledgerwatch/erigon/cl/phase1/forkchoice/fork_graph" "github.com/ledgerwatch/erigon/cl/pool" + "github.com/spf13/afero" libcommon "github.com/ledgerwatch/erigon-lib/common" @@ -49,7 +51,7 @@ func TestForkChoiceBasic(t *testing.T) { anchorState := state.New(&clparams.MainnetBeaconConfig) require.NoError(t, utils.DecodeSSZSnappy(anchorState, anchorStateEncoded, int(clparams.AltairVersion))) pool := pool.NewOperationsPool(&clparams.MainnetBeaconConfig) - store, err := forkchoice.NewForkChoiceStore(context.Background(), anchorState, nil, nil, pool, false) + store, err := forkchoice.NewForkChoiceStore(context.Background(), anchorState, nil, nil, pool, fork_graph.NewForkGraphDisk(anchorState, afero.NewMemMapFs())) require.NoError(t, err) // first steps store.OnTick(0) diff --git a/cl/phase1/forkchoice/fork_graph/fork_graph.go b/cl/phase1/forkchoice/fork_graph/fork_graph_disk.go similarity index 50% rename from cl/phase1/forkchoice/fork_graph/fork_graph.go rename to cl/phase1/forkchoice/fork_graph/fork_graph_disk.go index c9cef8ccc75..e57f21bdb67 100644 --- a/cl/phase1/forkchoice/fork_graph/fork_graph.go +++ b/cl/phase1/forkchoice/fork_graph/fork_graph_disk.go @@ -1,6 +1,13 @@ package fork_graph import ( + "bytes" + "encoding/binary" + "errors" + "fmt" + "os" + + "github.com/golang/snappy" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon/cl/clparams" "github.com/ledgerwatch/erigon/cl/cltypes" @@ -8,9 +15,11 @@ import ( "github.com/ledgerwatch/erigon/cl/phase1/core/state" "github.com/ledgerwatch/erigon/cl/transition" "github.com/ledgerwatch/log/v3" - "golang.org/x/exp/slices" + "github.com/spf13/afero" ) +var ErrStateNotFound = errors.New("state not found") + type ChainSegmentInsertionResult uint const ( @@ -22,51 +31,129 @@ const ( PreValidated ChainSegmentInsertionResult = 5 ) -const snapshotStateEverySlot = 64 - -/* -* The state store process is related to graph theory in the sense that the Ethereum blockchain can be thought of as a directed graph, -* where each block represents a node and the links between blocks represent directed edges. -* In this context, rolling back the state of Ethereum to a previous state can be thought of as traversing the graph in reverse, -* from the current state to a previous state. -* The process of reverting the state involves undoing the changes made in the blocks that have been added to the blockchain since the previous state. -* This can be thought of as "reversing the edges" in the graph, effectively undoing the changes made to the state of Ethereum. -* By thinking of the Ethereum blockchain as a graph, we can use graph theory concepts, such as traversal algorithms, -* to analyze and manipulate the state of the blockchain. - */ - // ForkGraph is our graph for ETH 2.0 consensus forkchoice. Each node is a (block root, changes) pair and // each edge is the path described as (prevBlockRoot, currBlockRoot). if we want to go forward we use blocks. -type ForkGraph struct { +type forkGraphDisk struct { // Alternate beacon states - currentReferenceState *state.CachingBeaconState - nextReferenceState *state.CachingBeaconState - blocks map[libcommon.Hash]*cltypes.SignedBeaconBlock // set of blocks - headers map[libcommon.Hash]*cltypes.BeaconBlockHeader // set of headers - badBlocks map[libcommon.Hash]struct{} // blocks that are invalid and that leads to automatic fail of extension. + fs afero.Fs + blocks map[libcommon.Hash]*cltypes.SignedBeaconBlock // set of blocks + headers map[libcommon.Hash]*cltypes.BeaconBlockHeader // set of headers + badBlocks map[libcommon.Hash]struct{} // blocks that are invalid and that leads to automatic fail of extension. // current state data currentState *state.CachingBeaconState currentStateBlockRoot libcommon.Hash - // childrens maps each block roots to its children block roots - childrens map[libcommon.Hash][]libcommon.Hash // for each block root we also keep track of te equivalent current justified and finalized checkpoints for faster head retrieval. currentJustifiedCheckpoints map[libcommon.Hash]solid.Checkpoint finalizedCheckpoints map[libcommon.Hash]solid.Checkpoint - // Disable for tests - enabledPruning bool + // configurations beaconCfg *clparams.BeaconChainConfig genesisTime uint64 // highest block seen - highestSeen uint64 + highestSeen, anchorSlot uint64 + + // reusable buffers + sszBuffer bytes.Buffer + sszSnappyBuffer bytes.Buffer +} + +func getBeaconStateFilename(blockRoot libcommon.Hash) string { + return fmt.Sprintf("%x.snappy_ssz", blockRoot) } -func (f *ForkGraph) AnchorSlot() uint64 { - return f.currentReferenceState.Slot() +func (f *forkGraphDisk) readBeaconStateFromDisk(blockRoot libcommon.Hash) (bs *state.CachingBeaconState, err error) { + var file afero.File + file, err = f.fs.Open(getBeaconStateFilename(blockRoot)) + + if err != nil { + return + } + defer file.Close() + // Read the version + v := []byte{0} + if _, err := file.Read(v); err != nil { + return nil, err + } + // Read the length + lengthBytes := make([]byte, 8) + _, err = file.Read(lengthBytes) + if err != nil { + return + } + // Grow the snappy buffer + f.sszSnappyBuffer.Grow(int(binary.BigEndian.Uint64(lengthBytes))) + // Read the snappy buffer + sszSnappyBuffer := f.sszSnappyBuffer.Bytes() + sszSnappyBuffer = sszSnappyBuffer[:cap(sszSnappyBuffer)] + var n int + n, err = file.Read(sszSnappyBuffer) + if err != nil { + return + } + + decLen, err := snappy.DecodedLen(sszSnappyBuffer[:n]) + if err != nil { + return + } + // Grow the plain ssz buffer + f.sszBuffer.Grow(decLen) + sszBuffer := f.sszBuffer.Bytes() + sszBuffer, err = snappy.Decode(sszBuffer, sszSnappyBuffer[:n]) + if err != nil { + return + } + bs = state.New(f.beaconCfg) + err = bs.DecodeSSZ(sszBuffer, int(v[0])) + return +} + +// dumpBeaconStateOnDisk dumps a beacon state on disk in ssz snappy format +func (f *forkGraphDisk) dumpBeaconStateOnDisk(bs *state.CachingBeaconState, blockRoot libcommon.Hash) (err error) { + // Truncate and then grow the buffer to the size of the state. + encodingSizeSSZ := bs.EncodingSizeSSZ() + f.sszBuffer.Grow(encodingSizeSSZ) + f.sszBuffer.Reset() + + sszBuffer := f.sszBuffer.Bytes() + sszBuffer, err = bs.EncodeSSZ(sszBuffer) + if err != nil { + return + } + // Grow the snappy buffer + f.sszSnappyBuffer.Grow(snappy.MaxEncodedLen(len(sszBuffer))) + // Compress the ssz buffer + sszSnappyBuffer := f.sszSnappyBuffer.Bytes() + sszSnappyBuffer = sszSnappyBuffer[:cap(sszSnappyBuffer)] + sszSnappyBuffer = snappy.Encode(sszSnappyBuffer, sszBuffer) + var dumpedFile afero.File + dumpedFile, err = f.fs.OpenFile(getBeaconStateFilename(blockRoot), os.O_TRUNC|os.O_CREATE|os.O_RDWR, 0o755) + if err != nil { + return + } + // First write the hard fork version + _, err = dumpedFile.Write([]byte{byte(bs.Version())}) + if err != nil { + return + } + // Second write the length + length := make([]byte, 8) + binary.BigEndian.PutUint64(length, uint64(len(sszSnappyBuffer))) + _, err = dumpedFile.Write(length) + if err != nil { + return + } + // Lastly dump the state + _, err = dumpedFile.Write(sszSnappyBuffer) + if err != nil { + return + } + + err = dumpedFile.Sync() + return } // Initialize fork graph with a new state -func New(anchorState *state.CachingBeaconState, enabledPruning bool) *ForkGraph { +func NewForkGraphDisk(anchorState *state.CachingBeaconState, aferoFs afero.Fs) ForkGraph { farthestExtendingPath := make(map[libcommon.Hash]bool) anchorRoot, err := anchorState.BlockRoot() if err != nil { @@ -80,17 +167,9 @@ func New(anchorState *state.CachingBeaconState, enabledPruning bool) *ForkGraph headers[anchorRoot] = &anchorHeader farthestExtendingPath[anchorRoot] = true - currentStateReference, err := anchorState.Copy() - if err != nil { - panic(err) - } - nextStateReference, err := anchorState.Copy() - if err != nil { - panic(err) - } - return &ForkGraph{ - currentReferenceState: currentStateReference, - nextReferenceState: nextStateReference, + + f := &forkGraphDisk{ + fs: aferoFs, // storage blocks: make(map[libcommon.Hash]*cltypes.SignedBeaconBlock), headers: headers, @@ -98,20 +177,24 @@ func New(anchorState *state.CachingBeaconState, enabledPruning bool) *ForkGraph // current state data currentState: anchorState, currentStateBlockRoot: anchorRoot, - // childrens - childrens: make(map[libcommon.Hash][]libcommon.Hash), // checkpoints trackers currentJustifiedCheckpoints: make(map[libcommon.Hash]solid.Checkpoint), finalizedCheckpoints: make(map[libcommon.Hash]solid.Checkpoint), - enabledPruning: enabledPruning, // configuration beaconCfg: anchorState.BeaconConfig(), genesisTime: anchorState.GenesisTime(), + anchorSlot: anchorState.Slot(), } + f.dumpBeaconStateOnDisk(anchorState, anchorRoot) + return f +} + +func (f *forkGraphDisk) AnchorSlot() uint64 { + return f.anchorSlot } // Add a new node and edge to the graph -func (f *ForkGraph) AddChainSegment(signedBlock *cltypes.SignedBeaconBlock, fullValidation bool) (*state.CachingBeaconState, ChainSegmentInsertionResult, error) { +func (f *forkGraphDisk) AddChainSegment(signedBlock *cltypes.SignedBeaconBlock, fullValidation bool) (*state.CachingBeaconState, ChainSegmentInsertionResult, error) { block := signedBlock.Block blockRoot, err := block.HashSSZ() if err != nil { @@ -122,7 +205,7 @@ func (f *ForkGraph) AddChainSegment(signedBlock *cltypes.SignedBeaconBlock, full return nil, PreValidated, nil } // Blocks below anchors are invalid. - if block.Slot <= f.currentReferenceState.Slot() { + if block.Slot <= f.anchorSlot { log.Debug("block below anchor slot", "slot", block.Slot, "hash", libcommon.Hash(blockRoot)) f.badBlocks[blockRoot] = struct{}{} return nil, BelowAnchor, nil @@ -134,7 +217,7 @@ func (f *ForkGraph) AddChainSegment(signedBlock *cltypes.SignedBeaconBlock, full return nil, InvalidBlock, nil } - newState, didLongRecconnection, err := f.GetState(block.ParentRoot, false) + newState, err := f.GetState(block.ParentRoot, false) if err != nil { return nil, InvalidBlock, err } @@ -142,22 +225,20 @@ func (f *ForkGraph) AddChainSegment(signedBlock *cltypes.SignedBeaconBlock, full log.Debug("AddChainSegment: missing segment", "block", libcommon.Hash(blockRoot)) return nil, MissingSegment, nil } - // if we did so by long recconection, i am afraid we need to discard the current state. - if didLongRecconnection { - log.Debug("AddChainSegment: Resetting state reference as it was orphaned") - f.currentReferenceState.CopyInto(f.nextReferenceState) - } // Execute the state if invalidBlockErr := transition.TransitionState(newState, signedBlock, fullValidation); invalidBlockErr != nil { // Add block to list of invalid blocks log.Debug("Invalid beacon block", "reason", invalidBlockErr) f.badBlocks[blockRoot] = struct{}{} - f.nextReferenceState.CopyInto(f.currentState) - f.currentStateBlockRoot, err = f.nextReferenceState.BlockRoot() + f.currentStateBlockRoot = libcommon.Hash{} + f.currentState, err = f.GetState(block.ParentRoot, true) if err != nil { - log.Error("[Caplin] Could not recover from invalid block") + log.Error("[Caplin] Could not recover from invalid block", "err", err) + } else { + f.currentStateBlockRoot = block.ParentRoot } + return nil, InvalidBlock, invalidBlockErr } @@ -173,8 +254,13 @@ func (f *ForkGraph) AddChainSegment(signedBlock *cltypes.SignedBeaconBlock, full Root: block.StateRoot, BodyRoot: bodyRoot, } - // Update the children of the parent - f.updateChildren(block.ParentRoot, blockRoot) + + if newState.Slot()%f.beaconCfg.SlotsPerEpoch == 0 { + if err := f.dumpBeaconStateOnDisk(newState, blockRoot); err != nil { + return nil, LogisticError, err + } + } + // Lastly add checkpoints to caches as well. f.currentJustifiedCheckpoints[blockRoot] = newState.CurrentJustifiedCheckpoint().Copy() f.finalizedCheckpoints[blockRoot] = newState.FinalizedCheckpoint().Copy() @@ -182,122 +268,86 @@ func (f *ForkGraph) AddChainSegment(signedBlock *cltypes.SignedBeaconBlock, full f.highestSeen = newState.Slot() f.currentState = newState f.currentStateBlockRoot = blockRoot - if newState.Slot()%snapshotStateEverySlot == 0 && f.nextReferenceState.Slot() > f.beaconCfg.SlotsPerEpoch && f.enabledPruning { - if err := f.removeOldData(); err != nil { - return nil, LogisticError, err - } - } } return newState, Success, nil } -func (f *ForkGraph) GenesisTime() uint64 { - return f.genesisTime -} - -func (f *ForkGraph) Config() *clparams.BeaconChainConfig { - return f.beaconCfg -} - -func (f *ForkGraph) GetHeader(blockRoot libcommon.Hash) (*cltypes.BeaconBlockHeader, bool) { +func (f *forkGraphDisk) GetHeader(blockRoot libcommon.Hash) (*cltypes.BeaconBlockHeader, bool) { obj, has := f.headers[blockRoot] return obj, has } -func (f *ForkGraph) getBlock(blockRoot libcommon.Hash) (*cltypes.SignedBeaconBlock, bool) { +func (f *forkGraphDisk) getBlock(blockRoot libcommon.Hash) (*cltypes.SignedBeaconBlock, bool) { obj, has := f.blocks[blockRoot] return obj, has } -func (f *ForkGraph) GetState(blockRoot libcommon.Hash, alwaysCopy bool) (*state.CachingBeaconState, bool, error) { +func (f *forkGraphDisk) GetState(blockRoot libcommon.Hash, alwaysCopy bool) (*state.CachingBeaconState, error) { + if f.currentStateBlockRoot == blockRoot { + if alwaysCopy { + ret, err := f.currentState.Copy() + return ret, err + } + return f.currentState, nil + } + // collect all blocks beetwen greatest extending node path and block. blocksInTheWay := []*cltypes.SignedBeaconBlock{} // Use the parent root as a reverse iterator. currentIteratorRoot := blockRoot - // use the current reference state root as reconnectio - reconnectionRootLong, err := f.currentReferenceState.BlockRoot() - if err != nil { - return nil, false, err - } - reconnectionRootShort, err := f.nextReferenceState.BlockRoot() - if err != nil { - return nil, false, err - } + // try and find the point of recconection - for currentIteratorRoot != reconnectionRootLong && currentIteratorRoot != reconnectionRootShort { + for { block, isSegmentPresent := f.getBlock(currentIteratorRoot) if !isSegmentPresent { - log.Debug("Could not retrieve state: Missing header", "missing", currentIteratorRoot, - "longRecconection", libcommon.Hash(reconnectionRootLong), "shortRecconection", libcommon.Hash(reconnectionRootShort)) - return nil, false, nil + // check if it is in the header + bHeader, ok := f.GetHeader(currentIteratorRoot) + if ok && bHeader.Slot%f.beaconCfg.SlotsPerEpoch == 0 { + break + } + + log.Debug("Could not retrieve state: Missing header", "missing", currentIteratorRoot) + return nil, nil + } + if block.Block.Slot%f.beaconCfg.SlotsPerEpoch == 0 { + break } blocksInTheWay = append(blocksInTheWay, block) currentIteratorRoot = block.Block.ParentRoot } - - var copyReferencedState *state.CachingBeaconState - didLongRecconnection := currentIteratorRoot == reconnectionRootLong && reconnectionRootLong != reconnectionRootShort - if f.currentStateBlockRoot == blockRoot { - if alwaysCopy { - ret, err := f.currentState.Copy() - return ret, didLongRecconnection, err - } - return f.currentState, didLongRecconnection, nil + copyReferencedState, err := f.readBeaconStateFromDisk(currentIteratorRoot) + if err != nil { + return nil, err } - // Take a copy to the reference state. - if currentIteratorRoot == reconnectionRootLong { - copyReferencedState, err = f.currentReferenceState.Copy() - if err != nil { - return nil, true, err - } - - } else { - copyReferencedState, err = f.nextReferenceState.Copy() - if err != nil { - return nil, false, err - } + if copyReferencedState == nil { + return nil, ErrStateNotFound } // Traverse the blocks from top to bottom. for i := len(blocksInTheWay) - 1; i >= 0; i-- { if err := transition.TransitionState(copyReferencedState, blocksInTheWay[i], false); err != nil { - return nil, didLongRecconnection, err + return nil, err } } - return copyReferencedState, didLongRecconnection, nil + return copyReferencedState, nil } -// updateChildren adds a new child to the parent node hash. -func (f *ForkGraph) updateChildren(parent, child libcommon.Hash) { - childrens := f.childrens[parent] - if slices.Contains(childrens, child) { - return - } - childrens = append(childrens, child) - f.childrens[parent] = childrens -} - -// GetChildren retrieves the children block root of the given block root. -func (f *ForkGraph) GetChildren(parent libcommon.Hash) []libcommon.Hash { - return f.childrens[parent] -} - -func (f *ForkGraph) GetCurrentJustifiedCheckpoint(blockRoot libcommon.Hash) (solid.Checkpoint, bool) { +func (f *forkGraphDisk) GetCurrentJustifiedCheckpoint(blockRoot libcommon.Hash) (solid.Checkpoint, bool) { obj, has := f.currentJustifiedCheckpoints[blockRoot] return obj, has } -func (f *ForkGraph) GetFinalizedCheckpoint(blockRoot libcommon.Hash) (solid.Checkpoint, bool) { +func (f *forkGraphDisk) GetFinalizedCheckpoint(blockRoot libcommon.Hash) (solid.Checkpoint, bool) { obj, has := f.finalizedCheckpoints[blockRoot] return obj, has } -func (f *ForkGraph) MarkHeaderAsInvalid(blockRoot libcommon.Hash) { +func (f *forkGraphDisk) MarkHeaderAsInvalid(blockRoot libcommon.Hash) { f.badBlocks[blockRoot] = struct{}{} } -func (f *ForkGraph) removeOldData() (err error) { - pruneSlot := f.nextReferenceState.Slot() - f.beaconCfg.SlotsPerEpoch +func (f *forkGraphDisk) Prune(pruneSlot uint64) (err error) { + pruneSlot -= f.beaconCfg.SlotsPerEpoch * 2 oldRoots := make([]libcommon.Hash, 0, len(f.blocks)) for hash, signedBlock := range f.blocks { if signedBlock.Block.Slot >= pruneSlot { @@ -308,29 +358,11 @@ func (f *ForkGraph) removeOldData() (err error) { for _, root := range oldRoots { delete(f.badBlocks, root) delete(f.blocks, root) - delete(f.childrens, root) delete(f.currentJustifiedCheckpoints, root) delete(f.finalizedCheckpoints, root) delete(f.headers, root) + f.fs.Remove(getBeaconStateFilename(root)) } - // Lastly snapshot the state - err = f.nextReferenceState.CopyInto(f.currentReferenceState) - if err != nil { - panic(err) // dead at this point - } - err = f.currentState.CopyInto(f.nextReferenceState) - if err != nil { - panic(err) // dead at this point - } - // use the current reference state root as reconnectio - reconnectionRootLong, err := f.currentReferenceState.BlockRoot() - if err != nil { - panic(err) - } - reconnectionRootShort, err := f.nextReferenceState.BlockRoot() - if err != nil { - panic(err) - } - log.Debug("Pruned old blocks", "pruneSlot", pruneSlot, "longRecconection", libcommon.Hash(reconnectionRootLong), "shortRecconection", libcommon.Hash(reconnectionRootShort)) + log.Debug("Pruned old blocks", "pruneSlot", pruneSlot) return } diff --git a/cl/phase1/forkchoice/fork_graph/fork_graph_test.go b/cl/phase1/forkchoice/fork_graph/fork_graph_test.go index 24ec360823b..49dac9fa3d7 100644 --- a/cl/phase1/forkchoice/fork_graph/fork_graph_test.go +++ b/cl/phase1/forkchoice/fork_graph/fork_graph_test.go @@ -2,9 +2,11 @@ package fork_graph import ( _ "embed" + "fmt" "testing" "github.com/ledgerwatch/erigon/cl/phase1/core/state" + "github.com/spf13/afero" "github.com/ledgerwatch/erigon/cl/clparams" "github.com/ledgerwatch/erigon/cl/cltypes" @@ -21,7 +23,7 @@ var block2 []byte //go:embed test_data/anchor_state.ssz_snappy var anchor []byte -func TestForkGraph(t *testing.T) { +func TestForkGraphInDisk(t *testing.T) { blockA, blockB, blockC := cltypes.NewSignedBeaconBlock(&clparams.MainnetBeaconConfig), cltypes.NewSignedBeaconBlock(&clparams.MainnetBeaconConfig), cltypes.NewSignedBeaconBlock(&clparams.MainnetBeaconConfig) anchorState := state.New(&clparams.MainnetBeaconConfig) @@ -29,7 +31,7 @@ func TestForkGraph(t *testing.T) { require.NoError(t, utils.DecodeSSZSnappy(blockB, block2, int(clparams.Phase0Version))) require.NoError(t, utils.DecodeSSZSnappy(blockC, block2, int(clparams.Phase0Version))) require.NoError(t, utils.DecodeSSZSnappy(anchorState, anchor, int(clparams.Phase0Version))) - graph := New(anchorState, false) + graph := NewForkGraphDisk(anchorState, afero.NewMemMapFs()) _, status, err := graph.AddChainSegment(blockA, true) require.NoError(t, err) require.Equal(t, status, Success) @@ -39,6 +41,7 @@ func TestForkGraph(t *testing.T) { require.Error(t, err) require.Equal(t, status, InvalidBlock) // Save current state hash + fmt.Println("ASADCS") _, status, err = graph.AddChainSegment(blockB, true) require.NoError(t, err) require.Equal(t, status, Success) @@ -46,5 +49,4 @@ func TestForkGraph(t *testing.T) { _, status, err = graph.AddChainSegment(blockB, true) require.NoError(t, err) require.Equal(t, status, PreValidated) - graph.removeOldData() } diff --git a/cl/phase1/forkchoice/fork_graph/interface.go b/cl/phase1/forkchoice/fork_graph/interface.go new file mode 100644 index 00000000000..1195e74d1c5 --- /dev/null +++ b/cl/phase1/forkchoice/fork_graph/interface.go @@ -0,0 +1,29 @@ +package fork_graph + +import ( + libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon/cl/cltypes" + "github.com/ledgerwatch/erigon/cl/cltypes/solid" + "github.com/ledgerwatch/erigon/cl/phase1/core/state" +) + +/* +* The state store process is related to graph theory in the sense that the Ethereum blockchain can be thought of as a directed graph, +* where each block represents a node and the links between blocks represent directed edges. +* In this context, rolling back the state of Ethereum to a previous state can be thought of as traversing the graph in reverse, +* from the current state to a previous state. +* The process of reverting the state involves undoing the changes made in the blocks that have been added to the blockchain since the previous state. +* This can be thought of as "reversing the edges" in the graph, effectively undoing the changes made to the state of Ethereum. +* By thinking of the Ethereum blockchain as a graph, we can use graph theory concepts, such as traversal algorithms, +* to analyze and manipulate the state of the blockchain. + */ +type ForkGraph interface { + AddChainSegment(signedBlock *cltypes.SignedBeaconBlock, fullValidation bool) (*state.CachingBeaconState, ChainSegmentInsertionResult, error) + GetHeader(blockRoot libcommon.Hash) (*cltypes.BeaconBlockHeader, bool) + GetState(blockRoot libcommon.Hash, alwaysCopy bool) (*state.CachingBeaconState, error) + GetCurrentJustifiedCheckpoint(blockRoot libcommon.Hash) (solid.Checkpoint, bool) + GetFinalizedCheckpoint(blockRoot libcommon.Hash) (solid.Checkpoint, bool) + MarkHeaderAsInvalid(blockRoot libcommon.Hash) + AnchorSlot() uint64 + Prune(uint64) error +} diff --git a/cl/phase1/forkchoice/forkchoice.go b/cl/phase1/forkchoice/forkchoice.go index ac315d05112..68d77363bef 100644 --- a/cl/phase1/forkchoice/forkchoice.go +++ b/cl/phase1/forkchoice/forkchoice.go @@ -4,12 +4,14 @@ import ( "context" "sync" + "github.com/ledgerwatch/erigon/cl/clparams" "github.com/ledgerwatch/erigon/cl/cltypes/solid" "github.com/ledgerwatch/erigon/cl/freezer" state2 "github.com/ledgerwatch/erigon/cl/phase1/core/state" "github.com/ledgerwatch/erigon/cl/phase1/execution_client" "github.com/ledgerwatch/erigon/cl/phase1/forkchoice/fork_graph" "github.com/ledgerwatch/erigon/cl/pool" + "golang.org/x/exp/slices" lru "github.com/hashicorp/golang-lru/v2" libcommon "github.com/ledgerwatch/erigon-lib/common" @@ -34,9 +36,12 @@ type ForkChoiceStore struct { proposerBoostRoot libcommon.Hash headHash libcommon.Hash headSlot uint64 + genesisTime uint64 + childrens map[libcommon.Hash]childrens + // Use go map because this is actually an unordered set equivocatingIndicies map[uint64]struct{} - forkGraph *fork_graph.ForkGraph + forkGraph fork_graph.ForkGraph // I use the cache due to the convenient auto-cleanup feauture. checkpointStates map[checkpointComparable]*checkpointState // We keep ssz snappy of it as the full beacon state is full of rendundant data. latestMessages map[uint64]*LatestMessage @@ -50,6 +55,7 @@ type ForkChoiceStore struct { recorder freezer.Freezer // operations pool operationsPool pool.OperationsPool + beaconCfg *clparams.BeaconChainConfig } type LatestMessage struct { @@ -57,8 +63,13 @@ type LatestMessage struct { Root libcommon.Hash } +type childrens struct { + childrenHashes []libcommon.Hash + parentSlot uint64 // we keep this one for pruning +} + // NewForkChoiceStore initialize a new store from the given anchor state, either genesis or checkpoint sync state. -func NewForkChoiceStore(ctx context.Context, anchorState *state2.CachingBeaconState, engine execution_client.ExecutionEngine, recorder freezer.Freezer, operationsPool pool.OperationsPool, enabledPruning bool) (*ForkChoiceStore, error) { +func NewForkChoiceStore(ctx context.Context, anchorState *state2.CachingBeaconState, engine execution_client.ExecutionEngine, recorder freezer.Freezer, operationsPool pool.OperationsPool, forkGraph fork_graph.ForkGraph) (*ForkChoiceStore, error) { anchorRoot, err := anchorState.BlockRoot() if err != nil { return nil, err @@ -89,7 +100,7 @@ func NewForkChoiceStore(ctx context.Context, anchorState *state2.CachingBeaconSt finalizedCheckpoint: anchorCheckpoint.Copy(), unrealizedJustifiedCheckpoint: anchorCheckpoint.Copy(), unrealizedFinalizedCheckpoint: anchorCheckpoint.Copy(), - forkGraph: fork_graph.New(anchorState, enabledPruning), + forkGraph: forkGraph, equivocatingIndicies: map[uint64]struct{}{}, latestMessages: map[uint64]*LatestMessage{}, checkpointStates: make(map[checkpointComparable]*checkpointState), @@ -98,6 +109,9 @@ func NewForkChoiceStore(ctx context.Context, anchorState *state2.CachingBeaconSt recorder: recorder, operationsPool: operationsPool, anchorPublicKeys: anchorPublicKeys, + genesisTime: anchorState.GenesisTime(), + beaconCfg: anchorState.BeaconConfig(), + childrens: make(map[libcommon.Hash]childrens), }, nil } @@ -108,6 +122,28 @@ func (f *ForkChoiceStore) HighestSeen() uint64 { return f.highestSeen } +func (f *ForkChoiceStore) children(parent libcommon.Hash) []libcommon.Hash { + children, ok := f.childrens[parent] + if !ok { + return nil + } + return children.childrenHashes +} + +// updateChildren adds a new child to the parent node hash. +func (f *ForkChoiceStore) updateChildren(parentSlot uint64, parent, child libcommon.Hash) { + c, ok := f.childrens[parent] + if !ok { + c = childrens{} + } + c.parentSlot = parentSlot // can be innacurate. + if slices.Contains(c.childrenHashes, child) { + return + } + c.childrenHashes = append(c.childrenHashes, child) + f.childrens[parent] = c +} + // AdvanceHighestSeen advances the highest seen block by n and returns the new slot after the change func (f *ForkChoiceStore) AdvanceHighestSeen(n uint64) uint64 { f.mu.Lock() diff --git a/cl/phase1/forkchoice/get_head.go b/cl/phase1/forkchoice/get_head.go index 1ffcc3365fb..e1300c2c022 100644 --- a/cl/phase1/forkchoice/get_head.go +++ b/cl/phase1/forkchoice/get_head.go @@ -32,7 +32,7 @@ func (f *ForkChoiceStore) getHead() (libcommon.Hash, uint64, error) { filteredIndicies := f.filterValidatorSetForAttestationScores(justificationState, justificationState.epoch) for { // Filter out current head children. - unfilteredChildren := f.forkGraph.GetChildren(f.headHash) + unfilteredChildren := f.children(f.headHash) children := []libcommon.Hash{} for _, child := range unfilteredChildren { if _, ok := blocks[child]; ok { @@ -133,7 +133,7 @@ func (f *ForkChoiceStore) getFilterBlockTree(blockRoot libcommon.Hash, blocks ma if !has { return false } - children := f.forkGraph.GetChildren(blockRoot) + children := f.children(blockRoot) // If there are children iterate down recursively and see which branches are viable. if len(children) > 0 { isAnyViable := false @@ -156,7 +156,7 @@ func (f *ForkChoiceStore) getFilterBlockTree(blockRoot libcommon.Hash, blocks ma return false } - genesisEpoch := f.forkGraph.Config().GenesisEpoch + genesisEpoch := f.beaconCfg.GenesisEpoch if (f.justifiedCheckpoint.Epoch() == genesisEpoch || currentJustifiedCheckpoint.Equal(f.justifiedCheckpoint)) && (f.finalizedCheckpoint.Epoch() == genesisEpoch || finalizedJustifiedCheckpoint.Equal(f.finalizedCheckpoint)) { blocks[blockRoot] = header diff --git a/cl/phase1/forkchoice/on_attestation.go b/cl/phase1/forkchoice/on_attestation.go index f026a81d844..ed4b0ce674c 100644 --- a/cl/phase1/forkchoice/on_attestation.go +++ b/cl/phase1/forkchoice/on_attestation.go @@ -139,8 +139,8 @@ func (f *ForkChoiceStore) validateTargetEpochAgainstCurrentTime(attestation *sol currentEpoch := f.computeEpochAtSlot(f.Slot()) // Use GENESIS_EPOCH for previous when genesis to avoid underflow previousEpoch := currentEpoch - 1 - if currentEpoch <= f.forkGraph.Config().GenesisEpoch { - previousEpoch = f.forkGraph.Config().GenesisEpoch + if currentEpoch <= f.beaconCfg.GenesisEpoch { + previousEpoch = f.beaconCfg.GenesisEpoch } if target.Epoch() == currentEpoch || target.Epoch() == previousEpoch { return nil diff --git a/cl/phase1/forkchoice/on_attester_slashing.go b/cl/phase1/forkchoice/on_attester_slashing.go index 4e00fee687c..1c4ea9d5dc3 100644 --- a/cl/phase1/forkchoice/on_attester_slashing.go +++ b/cl/phase1/forkchoice/on_attester_slashing.go @@ -25,7 +25,7 @@ func (f *ForkChoiceStore) OnAttesterSlashing(attesterSlashing *cltypes.AttesterS return fmt.Errorf("attestation data is not slashable") } // Retrieve justified state - s, _, err := f.forkGraph.GetState(f.justifiedCheckpoint.BlockRoot(), false) + s, err := f.forkGraph.GetState(f.justifiedCheckpoint.BlockRoot(), false) if err != nil { f.mu.Unlock() return err diff --git a/cl/phase1/forkchoice/on_block.go b/cl/phase1/forkchoice/on_block.go index 5bc0593d775..024b323948e 100644 --- a/cl/phase1/forkchoice/on_block.go +++ b/cl/phase1/forkchoice/on_block.go @@ -31,7 +31,6 @@ func (f *ForkChoiceStore) OnBlock(block *cltypes.SignedBeaconBlock, newPayload, return nil } - config := f.forkGraph.Config() var invalidBlock bool if newPayload && f.engine != nil { if invalidBlock, err = f.engine.NewPayload(block.Block.Body.ExecutionPayload, &block.Block.ParentRoot); err != nil { @@ -51,6 +50,7 @@ func (f *ForkChoiceStore) OnBlock(block *cltypes.SignedBeaconBlock, newPayload, case fork_graph.PreValidated: return nil case fork_graph.Success: + f.updateChildren(block.Block.Slot-1, block.Block.ParentRoot, blockRoot) // parent slot can be innacurate case fork_graph.BelowAnchor: log.Debug("replay block", "code", status) return nil @@ -65,12 +65,12 @@ func (f *ForkChoiceStore) OnBlock(block *cltypes.SignedBeaconBlock, newPayload, f.highestSeen = block.Block.Slot } // Add proposer score boost if the block is timely - timeIntoSlot := (f.time - f.forkGraph.GenesisTime()) % lastProcessedState.BeaconConfig().SecondsPerSlot - isBeforeAttestingInterval := timeIntoSlot < config.SecondsPerSlot/config.IntervalsPerSlot + timeIntoSlot := (f.time - f.genesisTime) % lastProcessedState.BeaconConfig().SecondsPerSlot + isBeforeAttestingInterval := timeIntoSlot < f.beaconCfg.SecondsPerSlot/f.beaconCfg.IntervalsPerSlot if f.Slot() == block.Block.Slot && isBeforeAttestingInterval && f.proposerBoostRoot == (libcommon.Hash{}) { f.proposerBoostRoot = blockRoot } - if lastProcessedState.Slot()%f.forkGraph.Config().SlotsPerEpoch == 0 { + if lastProcessedState.Slot()%f.beaconCfg.SlotsPerEpoch == 0 { if err := freezer.PutObjectSSZIntoFreezer("beaconState", "caplin_core", lastProcessedState.Slot(), lastProcessedState, f.recorder); err != nil { return err } diff --git a/cl/phase1/forkchoice/on_operations.go b/cl/phase1/forkchoice/on_operations.go index 0b831e1c389..4453a675472 100644 --- a/cl/phase1/forkchoice/on_operations.go +++ b/cl/phase1/forkchoice/on_operations.go @@ -29,7 +29,7 @@ func (f *ForkChoiceStore) OnVoluntaryExit(signedVoluntaryExit *cltypes.SignedVol f.mu.Unlock() return err } - s, _, err := f.forkGraph.GetState(headHash, false) + s, err := f.forkGraph.GetState(headHash, false) if err != nil { f.mu.Unlock() return err @@ -41,7 +41,7 @@ func (f *ForkChoiceStore) OnVoluntaryExit(signedVoluntaryExit *cltypes.SignedVol return err } - if val.ExitEpoch() != f.forkGraph.Config().FarFutureEpoch { + if val.ExitEpoch() != f.beaconCfg.FarFutureEpoch { f.mu.Unlock() return nil } @@ -97,7 +97,7 @@ func (f *ForkChoiceStore) OnProposerSlashing(proposerSlashing *cltypes.ProposerS f.mu.Unlock() return err } - s, _, err := f.forkGraph.GetState(headHash, false) + s, err := f.forkGraph.GetState(headHash, false) if err != nil { f.mu.Unlock() return err @@ -159,7 +159,6 @@ func (f *ForkChoiceStore) OnBlsToExecutionChange(signedChange *cltypes.SignedBLS } change := signedChange.Message - beaconConfig := f.forkGraph.Config() // Take lock as we interact with state. f.mu.Lock() @@ -168,7 +167,7 @@ func (f *ForkChoiceStore) OnBlsToExecutionChange(signedChange *cltypes.SignedBLS f.mu.Unlock() return err } - s, _, err := f.forkGraph.GetState(headHash, false) + s, err := f.forkGraph.GetState(headHash, false) if err != nil { f.mu.Unlock() return err @@ -180,7 +179,7 @@ func (f *ForkChoiceStore) OnBlsToExecutionChange(signedChange *cltypes.SignedBLS } wc := validator.WithdrawalCredentials() - if wc[0] != beaconConfig.BLSWithdrawalPrefixByte { + if wc[0] != f.beaconCfg.BLSWithdrawalPrefixByte { f.mu.Unlock() return fmt.Errorf("invalid withdrawal credentials prefix") } @@ -195,7 +194,7 @@ func (f *ForkChoiceStore) OnBlsToExecutionChange(signedChange *cltypes.SignedBLS } // Compute the signing domain and verify the message signature. - domain, err := fork.ComputeDomain(beaconConfig.DomainBLSToExecutionChange[:], utils.Uint32ToBytes4(beaconConfig.GenesisForkVersion), genesisValidatorRoot) + domain, err := fork.ComputeDomain(f.beaconCfg.DomainBLSToExecutionChange[:], utils.Uint32ToBytes4(f.beaconCfg.GenesisForkVersion), genesisValidatorRoot) if err != nil { return err } diff --git a/cl/phase1/forkchoice/on_tick.go b/cl/phase1/forkchoice/on_tick.go index de096bfc114..6020e979900 100644 --- a/cl/phase1/forkchoice/on_tick.go +++ b/cl/phase1/forkchoice/on_tick.go @@ -6,9 +6,9 @@ import libcommon "github.com/ledgerwatch/erigon-lib/common" func (f *ForkChoiceStore) OnTick(time uint64) { f.mu.Lock() defer f.mu.Unlock() - tickSlot := (time - f.forkGraph.GenesisTime()) / f.forkGraph.Config().SecondsPerSlot + tickSlot := (time - f.genesisTime) / f.beaconCfg.SecondsPerSlot for f.Slot() < tickSlot { - previousTime := f.forkGraph.GenesisTime() + (f.Slot()+1)*f.forkGraph.Config().SecondsPerSlot + previousTime := f.genesisTime + (f.Slot()+1)*f.beaconCfg.SecondsPerSlot f.onTickPerSlot(previousTime) } f.onTickPerSlot(time) diff --git a/cl/phase1/forkchoice/utils.go b/cl/phase1/forkchoice/utils.go index 974fdf89234..b3eaca58da7 100644 --- a/cl/phase1/forkchoice/utils.go +++ b/cl/phase1/forkchoice/utils.go @@ -13,7 +13,7 @@ import ( // Slot calculates the current slot number using the time and genesis slot. func (f *ForkChoiceStore) Slot() uint64 { - return f.forkGraph.Config().GenesisSlot + ((f.time - f.forkGraph.GenesisTime()) / f.forkGraph.Config().SecondsPerSlot) + return f.beaconCfg.GenesisSlot + ((f.time - f.genesisTime) / f.beaconCfg.SecondsPerSlot) } // updateCheckpoints updates the justified and finalized checkpoints if new checkpoints have higher epochs. @@ -29,6 +29,7 @@ func (f *ForkChoiceStore) updateCheckpoints(justifiedCheckpoint, finalizedCheckp } func (f *ForkChoiceStore) onNewFinalized(newFinalized solid.Checkpoint) { + // get rid of checkpoint states for k := range f.checkpointStates { checkpoint := solid.Checkpoint(k) if checkpoint.Epoch() <= newFinalized.Epoch() { @@ -36,6 +37,14 @@ func (f *ForkChoiceStore) onNewFinalized(newFinalized solid.Checkpoint) { continue } } + // get rid of children + for k, children := range f.childrens { + if children.parentSlot <= newFinalized.Epoch()*f.beaconCfg.SlotsPerEpoch { + delete(f.childrens, k) + continue + } + } + f.forkGraph.Prune(newFinalized.Epoch() * f.beaconCfg.SlotsPerEpoch) } // updateCheckpoints updates the justified and finalized checkpoints if new checkpoints have higher epochs. @@ -50,12 +59,12 @@ func (f *ForkChoiceStore) updateUnrealizedCheckpoints(justifiedCheckpoint, final // computeEpochAtSlot calculates the epoch at a given slot number. func (f *ForkChoiceStore) computeEpochAtSlot(slot uint64) uint64 { - return slot / f.forkGraph.Config().SlotsPerEpoch + return slot / f.beaconCfg.SlotsPerEpoch } // computeStartSlotAtEpoch calculates the starting slot of a given epoch. func (f *ForkChoiceStore) computeStartSlotAtEpoch(epoch uint64) uint64 { - return epoch * f.forkGraph.Config().SlotsPerEpoch + return epoch * f.beaconCfg.SlotsPerEpoch } // computeSlotsSinceEpochStart calculates the number of slots since the start of the epoch of a given slot. @@ -86,7 +95,7 @@ func (f *ForkChoiceStore) getCheckpointState(checkpoint solid.Checkpoint) (*chec return state, nil } // If it is not in cache compute it and then put in cache. - baseState, _, err := f.forkGraph.GetState(checkpoint.BlockRoot(), true) + baseState, err := f.forkGraph.GetState(checkpoint.BlockRoot(), true) if err != nil { return nil, err } @@ -108,7 +117,7 @@ func (f *ForkChoiceStore) getCheckpointState(checkpoint solid.Checkpoint) (*chec validators[idx] = v return true }) - checkpointState := newCheckpointState(f.forkGraph.Config(), f.anchorPublicKeys, validators, + checkpointState := newCheckpointState(f.beaconCfg, f.anchorPublicKeys, validators, mixes, baseState.GenesisValidatorsRoot(), baseState.Fork(), baseState.GetTotalActiveBalance(), state.Epoch(baseState.BeaconState)) // Cache in memory what we are left with. f.checkpointStates[checkpointComparable(checkpoint)] = checkpointState diff --git a/cl/phase1/main.go b/cl/phase1/main.go index e64c2ccabfa..10f4c7070f6 100644 --- a/cl/phase1/main.go +++ b/cl/phase1/main.go @@ -8,22 +8,22 @@ func main() {} // "fmt" // "os" -// "github.com/ledgerwatch/erigon/cl/phase1/core" -// "github.com/ledgerwatch/erigon/cl/phase1/core/state" -// "github.com/ledgerwatch/erigon/cl/phase1/execution_client" -// "github.com/ledgerwatch/erigon/cl/phase1/forkchoice" -// network2 "github.com/ledgerwatch/erigon/cl/phase1/network" -// stages2 "github.com/ledgerwatch/erigon/cl/phase1/stages" -// rawdb2 "github.com/ledgerwatch/erigon/cl/phase4/rawdb" +// "github.com/ledgerwatch/erigon-lib/cl/phase1/core" +// "github.com/ledgerwatch/erigon-lib/cl/phase1/core/state" +// "github.com/ledgerwatch/erigon-lib/cl/phase1/execution_client" +// "github.com/ledgerwatch/erigon-lib/cl/phase1/forkchoice" +// network2 "github.com/ledgerwatch/erigon-lib/cl/phase1/network" +// stages2 "github.com/ledgerwatch/erigon-lib/cl/phase1/stages" +// rawdb2 "github.com/ledgerwatch/erigon-lib/cl/phase4/rawdb" // sentinelrpc "github.com/ledgerwatch/erigon-lib/gointerfaces/sentinel" // "github.com/ledgerwatch/erigon-lib/kv" // "github.com/ledgerwatch/erigon-lib/kv/mdbx" -// "github.com/ledgerwatch/erigon/cl/clparams" -// "github.com/ledgerwatch/erigon/cl/clparams/initial_state" -// "github.com/ledgerwatch/erigon/cl/cltypes" -// "github.com/ledgerwatch/erigon/cl/fork" -// "github.com/ledgerwatch/erigon/cl/rpc" +// "github.com/ledgerwatch/erigon-lib/cl/clparams" +// "github.com/ledgerwatch/erigon-lib/cl/clparams/initial_state" +// "github.com/ledgerwatch/erigon-lib/cl/cltypes" +// "github.com/ledgerwatch/erigon-lib/cl/fork" +// "github.com/ledgerwatch/erigon-lib/cl/rpc" // lcCli "github.com/ledgerwatch/erigon/cmd/sentinel/cli" // "github.com/ledgerwatch/erigon/cmd/sentinel/cli/flags" diff --git a/cl/phase1/network/backward_beacon_downloader.go b/cl/phase1/network/backward_beacon_downloader.go index 612406d5f05..2f5abf9b814 100644 --- a/cl/phase1/network/backward_beacon_downloader.go +++ b/cl/phase1/network/backward_beacon_downloader.go @@ -2,6 +2,7 @@ package network import ( "sync" + "time" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/log/v3" @@ -85,9 +86,36 @@ func (b *BackwardBeaconDownloader) RequestMore(ctx context.Context) { if start > b.slotToDownload { start = 0 } - responses, _, err := b.rpc.SendBeaconBlocksByRangeReq(ctx, start, count) - if err != nil { - return + + reqInterval := time.NewTicker(300 * time.Millisecond) + doneRespCh := make(chan []*cltypes.SignedBeaconBlock, 1) + var responses []*cltypes.SignedBeaconBlock +Loop: + for { + select { + case <-reqInterval.C: + go func() { + responses, peerId, err := b.rpc.SendBeaconBlocksByRangeReq(ctx, start, count) + if err != nil { + return + } + if responses == nil { + return + } + if len(responses) == 0 { + b.rpc.BanPeer(peerId) + return + } + select { + case doneRespCh <- responses: + default: + } + }() + case <-ctx.Done(): + return + case responses = <-doneRespCh: + break Loop + } } // Import new blocks, order is forward so reverse the whole packet for i := len(responses) - 1; i >= 0; i-- { @@ -103,6 +131,7 @@ func (b *BackwardBeaconDownloader) RequestMore(ctx context.Context) { } // No? Reject. if blockRoot != b.expectedRoot { + log.Debug("Gotten unexpected root", "got", blockRoot, "expected", b.expectedRoot) continue } // Yes? then go for the callback. diff --git a/cl/phase1/network/gossip_manager.go b/cl/phase1/network/gossip_manager.go index 10b61af83d4..abc33f3d6c4 100644 --- a/cl/phase1/network/gossip_manager.go +++ b/cl/phase1/network/gossip_manager.go @@ -3,6 +3,7 @@ package network import ( "context" "fmt" + "github.com/ledgerwatch/erigon-lib/common" "sync" "github.com/ledgerwatch/erigon/cl/freezer" @@ -14,7 +15,6 @@ import ( "github.com/ledgerwatch/erigon/cl/clparams" "github.com/ledgerwatch/erigon/cl/cltypes" "github.com/ledgerwatch/erigon/cl/utils" - "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/log/v3" ) @@ -154,7 +154,7 @@ func (g *GossipManager) onRecv(ctx context.Context, data *sentinel.GossipData, l if err := operationsContract[*cltypes.AttesterSlashing](ctx, g, l, data, int(version), "attester slashing", g.forkChoice.OnAttesterSlashing); err != nil { return err } - case sentinel.GossipType_BlsToExecutionChangeType: + case sentinel.GossipType_BlsToExecutionChangeGossipType: if err := operationsContract[*cltypes.SignedBLSToExecutionChange](ctx, g, l, data, int(version), "bls to execution change", g.forkChoice.OnBlsToExecutionChange); err != nil { return err } diff --git a/cl/phase1/stages/clstages.go b/cl/phase1/stages/clstages.go index 05e0514fd54..60b90e99303 100644 --- a/cl/phase1/stages/clstages.go +++ b/cl/phase1/stages/clstages.go @@ -2,13 +2,13 @@ package stages import ( "context" - "database/sql" "errors" "runtime" "time" "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/dbg" + "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/erigon/cl/clparams" "github.com/ledgerwatch/erigon/cl/clstages" "github.com/ledgerwatch/erigon/cl/cltypes" @@ -36,9 +36,11 @@ type Cfg struct { gossipManager *network2.GossipManager forkChoice *forkchoice.ForkChoiceStore beaconDB persistence.BeaconChainDatabase - indiciesDB *sql.DB + indiciesDB kv.RwDB tmpdir string dbConfig db_config.DatabaseConfiguration + + hasDownloaded bool } type Args struct { @@ -46,6 +48,8 @@ type Args struct { targetEpoch, seenEpoch uint64 targetSlot, seenSlot uint64 + + hasDownloaded bool } func ClStagesCfg( @@ -57,7 +61,7 @@ func ClStagesCfg( gossipManager *network2.GossipManager, forkChoice *forkchoice.ForkChoiceStore, beaconDB persistence.BeaconChainDatabase, - indiciesDB *sql.DB, + indiciesDB kv.RwDB, tmpdir string, dbConfig db_config.DatabaseConfiguration, ) *Cfg { @@ -93,11 +97,11 @@ const ( minPeersForDownload = uint64(4) ) -func MetaCatchingUp(args Args, hasDownloaded bool) StageName { +func MetaCatchingUp(args Args) StageName { if args.peers < minPeersForDownload { return WaitForPeers } - if !hasDownloaded { + if !args.hasDownloaded { return DownloadHistoricalBlocks } if args.seenEpoch < args.targetEpoch { @@ -162,21 +166,19 @@ func ConsensusClStages(ctx context.Context, ) *clstages.StageGraph[*Cfg, Args] { rpcSource := persistence.NewBeaconRpcSource(cfg.rpc) gossipSource := persistence.NewGossipSource(ctx, cfg.gossipManager) - processBlock := func(tx *sql.Tx, block *peers.PeeredObject[*cltypes.SignedBeaconBlock], newPayload, fullValidation bool) error { - if err := cfg.forkChoice.OnBlock(block.Data, newPayload, fullValidation); err != nil { - log.Warn("fail to process block", "reason", err, "slot", block.Data.Block.Slot) - cfg.rpc.BanPeer(block.Peer) + processBlock := func(tx kv.RwTx, block *cltypes.SignedBeaconBlock, newPayload, fullValidation bool) error { + if err := cfg.forkChoice.OnBlock(block, newPayload, fullValidation); err != nil { + log.Warn("fail to process block", "reason", err, "slot", block.Block.Slot) return err } // Write block to database optimistically if we are very behind. - return cfg.beaconDB.WriteBlock(tx, ctx, block.Data, false) + return cfg.beaconDB.WriteBlock(ctx, tx, block, false) } // TODO: this is an ugly hack, but it works! Basically, we want shared state in the clstages. // Probably the correct long term solution is to create a third generic parameter that defines shared state // but for now, all it would have are the two gossip sources and the forkChoicesSinceReorg, so i don't think its worth it (yet). shouldForkChoiceSinceReorg := false - downloaded := false // clstages run in a single thread - so we don't need to worry about any synchronization. return &clstages.StageGraph[*Cfg, Args]{ @@ -188,6 +190,7 @@ func ConsensusClStages(ctx context.Context, log.Error("failed to get sentinel peer count", "err", err) args.peers = 0 } + args.hasDownloaded = cfg.hasDownloaded args.seenSlot = cfg.forkChoice.HighestSeen() args.seenEpoch = args.seenSlot / cfg.beaconCfg.SlotsPerEpoch args.targetSlot = utils.GetCurrentSlot(cfg.genesisCfg.GenesisTime, cfg.beaconCfg.SecondsPerSlot) @@ -199,7 +202,7 @@ func ConsensusClStages(ctx context.Context, WaitForPeers: { Description: `wait for enough peers. This is also a safe stage to go to when unsure of what stage to use`, TransitionFunc: func(cfg *Cfg, args Args, err error) string { - if x := MetaCatchingUp(args, downloaded); x != "" { + if x := MetaCatchingUp(args); x != "" { return x } return CatchUpBlocks @@ -232,13 +235,13 @@ func ConsensusClStages(ctx context.Context, DownloadHistoricalBlocks: { Description: "Download historical blocks", TransitionFunc: func(cfg *Cfg, args Args, err error) string { - if x := MetaCatchingUp(args, downloaded); x != "" { + if x := MetaCatchingUp(args); x != "" { return x } return CatchUpBlocks }, ActionFunc: func(ctx context.Context, logger log.Logger, cfg *Cfg, args Args) error { - downloaded = true + cfg.hasDownloaded = true startingRoot, err := cfg.state.BlockRoot() if err != nil { return err @@ -247,7 +250,7 @@ func ConsensusClStages(ctx context.Context, downloader := network2.NewBackwardBeaconDownloader(ctx, cfg.rpc) if err := SpawnStageHistoryDownload(StageHistoryReconstruction(downloader, cfg.beaconDB, cfg.indiciesDB, cfg.executionClient, cfg.genesisCfg, cfg.beaconCfg, cfg.dbConfig, startingRoot, startingSlot, cfg.tmpdir, logger), ctx, logger); err != nil { - downloaded = false + cfg.hasDownloaded = false return err } return nil @@ -256,7 +259,7 @@ func ConsensusClStages(ctx context.Context, CatchUpEpochs: { Description: `if we are 1 or more epochs behind, we download in parallel by epoch`, TransitionFunc: func(cfg *Cfg, args Args, err error) string { - if x := MetaCatchingUp(args, downloaded); x != "" { + if x := MetaCatchingUp(args); x != "" { return x } return CatchUpBlocks @@ -266,7 +269,7 @@ func ConsensusClStages(ctx context.Context, currentEpoch := args.seenEpoch blockBatch := []*types.Block{} shouldInsert := cfg.executionClient != nil && cfg.executionClient.SupportInsertion() - tx, err := cfg.indiciesDB.BeginTx(ctx, &sql.TxOptions{}) + tx, err := cfg.indiciesDB.BeginRw(ctx) if err != nil { return err } @@ -274,25 +277,33 @@ func ConsensusClStages(ctx context.Context, MainLoop: for currentEpoch <= args.targetEpoch+1 { startBlock := currentEpoch * cfg.beaconCfg.SlotsPerEpoch - blocks, err := rpcSource.GetRange(tx, ctx, startBlock, cfg.beaconCfg.SlotsPerEpoch) + blocks, err := rpcSource.GetRange(ctx, tx, startBlock, cfg.beaconCfg.SlotsPerEpoch) if err != nil { return err } + // If we got an empty packet ban the peer + if len(blocks.Data) == 0 { + cfg.rpc.BanPeer(blocks.Peer) + continue MainLoop + } logger.Info("[Caplin] Epoch downloaded", "epoch", currentEpoch) - for _, block := range blocks { - if shouldInsert && block.Data.Version() >= clparams.BellatrixVersion { - executionPayload := block.Data.Block.Body.ExecutionPayload + for _, block := range blocks.Data { + + if shouldInsert && block.Version() >= clparams.BellatrixVersion { + executionPayload := block.Block.Body.ExecutionPayload body := executionPayload.Body() txs, err := types.DecodeTransactions(body.Transactions) if err != nil { log.Warn("bad blocks segment received", "err", err) + cfg.rpc.BanPeer(blocks.Peer) currentEpoch = utils.Max64(args.seenEpoch, currentEpoch-1) continue MainLoop } header, err := executionPayload.RlpHeader() if err != nil { log.Warn("bad blocks segment received", "err", err) + cfg.rpc.BanPeer(blocks.Peer) currentEpoch = utils.Max64(args.seenEpoch, currentEpoch-1) continue MainLoop } @@ -300,6 +311,7 @@ func ConsensusClStages(ctx context.Context, } if err := processBlock(tx, block, false, true); err != nil { log.Warn("bad blocks segment received", "err", err) + cfg.rpc.BanPeer(blocks.Peer) currentEpoch = utils.Max64(args.seenEpoch, currentEpoch-1) continue MainLoop } @@ -321,7 +333,7 @@ func ConsensusClStages(ctx context.Context, CatchUpBlocks: { Description: `if we are within the epoch but not at head, we run catchupblocks`, TransitionFunc: func(cfg *Cfg, args Args, err error) string { - if x := MetaCatchingUp(args, downloaded); x != "" { + if x := MetaCatchingUp(args); x != "" { return x } return ForkChoice @@ -333,14 +345,19 @@ func ConsensusClStages(ctx context.Context, "targetSlot", args.targetSlot, "requestedSlots", totalRequest, ) - respCh := make(chan []*peers.PeeredObject[*cltypes.SignedBeaconBlock]) + respCh := make(chan *peers.PeeredObject[[]*cltypes.SignedBeaconBlock]) errCh := make(chan error) - sources := []persistence.BlockSource{gossipSource, rpcSource} + sources := []persistence.BlockSource{gossipSource} + + // if we are more than one block behind, we request the rpc source as well + if totalRequest > 2 { + sources = append(sources, rpcSource) + } // the timeout is equal to the amount of blocks to fetch multiplied by the seconds per slot ctx, cn := context.WithTimeout(ctx, time.Duration(cfg.beaconCfg.SecondsPerSlot*totalRequest)*time.Second) defer cn() - tx, err := cfg.indiciesDB.BeginTx(ctx, &sql.TxOptions{}) + tx, err := cfg.indiciesDB.BeginRw(ctx) if err != nil { return err } @@ -349,7 +366,7 @@ func ConsensusClStages(ctx context.Context, for _, v := range sources { sourceFunc := v.GetRange go func() { - blocks, err := sourceFunc(tx, ctx, args.seenSlot+1, totalRequest) + blocks, err := sourceFunc(ctx, tx, args.seenSlot+1, totalRequest) if err != nil { errCh <- err return @@ -363,7 +380,7 @@ func ConsensusClStages(ctx context.Context, case err := <-errCh: return err case blocks := <-respCh: - for _, block := range blocks { + for _, block := range blocks.Data { if err := processBlock(tx, block, true, true); err != nil { return err } @@ -378,7 +395,7 @@ func ConsensusClStages(ctx context.Context, Description: `fork choice stage. We will send all fork choise things here also, we will wait up to delay seconds to deal with attestations + side forks`, TransitionFunc: func(cfg *Cfg, args Args, err error) string { - if x := MetaCatchingUp(args, downloaded); x != "" { + if x := MetaCatchingUp(args); x != "" { return x } return ListenForForks @@ -415,7 +432,7 @@ func ConsensusClStages(ctx context.Context, return err } } - tx, err := cfg.indiciesDB.BeginTx(ctx, &sql.TxOptions{}) + tx, err := cfg.indiciesDB.BeginRw(ctx) if err != nil { return err } @@ -427,7 +444,7 @@ func ConsensusClStages(ctx context.Context, currentRoot := headRoot currentSlot := headSlot - currentCanonical, err := beacon_indicies.ReadCanonicalBlockRoot(ctx, tx, currentSlot) + currentCanonical, err := beacon_indicies.ReadCanonicalBlockRoot(tx, currentSlot) if err != nil { return err } @@ -439,14 +456,14 @@ func ConsensusClStages(ctx context.Context, if currentRoot, err = beacon_indicies.ReadParentBlockRoot(ctx, tx, currentRoot); err != nil { return err } - if newFoundSlot, err = beacon_indicies.ReadBlockSlotByBlockRoot(ctx, tx, currentRoot); err != nil { + if newFoundSlot, err = beacon_indicies.ReadBlockSlotByBlockRoot(tx, currentRoot); err != nil { return err } if newFoundSlot == nil { break } currentSlot = *newFoundSlot - currentCanonical, err = beacon_indicies.ReadCanonicalBlockRoot(ctx, tx, currentSlot) + currentCanonical, err = beacon_indicies.ReadCanonicalBlockRoot(tx, currentSlot) if err != nil { return err } @@ -466,7 +483,7 @@ func ConsensusClStages(ctx context.Context, defer func() { shouldForkChoiceSinceReorg = false }() - if x := MetaCatchingUp(args, downloaded); x != "" { + if x := MetaCatchingUp(args); x != "" { return x } if shouldForkChoiceSinceReorg { @@ -482,13 +499,13 @@ func ConsensusClStages(ctx context.Context, waitDur := slotTime.Sub(time.Now()) ctx, cn := context.WithTimeout(ctx, waitDur) defer cn() - tx, err := cfg.indiciesDB.BeginTx(ctx, &sql.TxOptions{}) + tx, err := cfg.indiciesDB.BeginRw(ctx) if err != nil { return err } defer tx.Rollback() // try to get the current block - blocks, err := gossipSource.GetRange(tx, ctx, args.seenSlot, 1) + blocks, err := gossipSource.GetRange(ctx, tx, args.seenSlot, 1) if err != nil { if errors.Is(err, context.Canceled) || errors.Is(err, context.DeadlineExceeded) { return nil @@ -496,7 +513,7 @@ func ConsensusClStages(ctx context.Context, return err } - for _, block := range blocks { + for _, block := range blocks.Data { err := processBlock(tx, block, true, true) if err != nil { // its okay if block processing fails @@ -512,27 +529,26 @@ func ConsensusClStages(ctx context.Context, CleanupAndPruning: { Description: `cleanup and pruning is done here`, TransitionFunc: func(cfg *Cfg, args Args, err error) string { - if x := MetaCatchingUp(args, downloaded); x != "" { + if x := MetaCatchingUp(args); x != "" { return x } return SleepForSlot }, ActionFunc: func(ctx context.Context, logger log.Logger, cfg *Cfg, args Args) error { - tx, err := cfg.indiciesDB.BeginTx(ctx, &sql.TxOptions{}) + tx, err := cfg.indiciesDB.BeginRw(ctx) if err != nil { return err } defer tx.Rollback() // clean up some old ranges - err = gossipSource.PurgeRange(tx, ctx, 1, args.seenSlot-cfg.beaconCfg.SlotsPerEpoch*16) + err = gossipSource.PurgeRange(ctx, tx, 1, args.seenSlot-cfg.beaconCfg.SlotsPerEpoch*16) if err != nil { return err } - err = cfg.beaconDB.PurgeRange(tx, ctx, 1, cfg.forkChoice.HighestSeen()-cfg.dbConfig.PruneDepth) + err = cfg.beaconDB.PurgeRange(ctx, tx, 1, cfg.forkChoice.HighestSeen()-cfg.dbConfig.PruneDepth) if err != nil { return err } - //TODO: probably can clear old superepoch in fs here as well! return tx.Commit() }, }, diff --git a/cl/phase1/stages/stage_history_download.go b/cl/phase1/stages/stage_history_download.go index 36bad848a95..f8cc5c99c3a 100644 --- a/cl/phase1/stages/stage_history_download.go +++ b/cl/phase1/stages/stage_history_download.go @@ -2,11 +2,12 @@ package stages import ( "context" - "database/sql" "fmt" "sync/atomic" "time" + "github.com/ledgerwatch/erigon-lib/kv/dbutils" + libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/etl" "github.com/ledgerwatch/erigon-lib/kv" @@ -16,7 +17,6 @@ import ( "github.com/ledgerwatch/erigon/cl/phase1/execution_client" "github.com/ledgerwatch/erigon/cl/phase1/network" "github.com/ledgerwatch/erigon/cl/utils" - "github.com/ledgerwatch/erigon/common/dbutils" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/cl/clparams" @@ -33,14 +33,14 @@ type StageHistoryReconstructionCfg struct { startingSlot uint64 tmpdir string db persistence.BeaconChainDatabase - indiciesDB *sql.DB + indiciesDB kv.RwDB engine execution_client.ExecutionEngine logger log.Logger } const logIntervalTime = 30 * time.Second -func StageHistoryReconstruction(downloader *network.BackwardBeaconDownloader, db persistence.BeaconChainDatabase, indiciesDB *sql.DB, engine execution_client.ExecutionEngine, genesisCfg *clparams.GenesisConfig, beaconCfg *clparams.BeaconChainConfig, dbCfg db_config.DatabaseConfiguration, startingRoot libcommon.Hash, startinSlot uint64, tmpdir string, logger log.Logger) StageHistoryReconstructionCfg { +func StageHistoryReconstruction(downloader *network.BackwardBeaconDownloader, db persistence.BeaconChainDatabase, indiciesDB kv.RwDB, engine execution_client.ExecutionEngine, genesisCfg *clparams.GenesisConfig, beaconCfg *clparams.BeaconChainConfig, dbCfg db_config.DatabaseConfiguration, startingRoot libcommon.Hash, startinSlot uint64, tmpdir string, logger log.Logger) StageHistoryReconstructionCfg { return StageHistoryReconstructionCfg{ genesisCfg: genesisCfg, beaconCfg: beaconCfg, @@ -56,33 +56,12 @@ func StageHistoryReconstruction(downloader *network.BackwardBeaconDownloader, db } } -func waitForExecutionEngineToBeReady(ctx context.Context, engine execution_client.ExecutionEngine) error { - if engine == nil { - return nil - } - checkInterval := time.NewTicker(200 * time.Millisecond) - for { - select { - case <-checkInterval.C: - ready, err := engine.Ready() - if err != nil { - return err - } - if ready { - return nil - } - case <-ctx.Done(): - return ctx.Err() - } - } -} - // SpawnStageBeaconsForward spawn the beacon forward stage func SpawnStageHistoryDownload(cfg StageHistoryReconstructionCfg, ctx context.Context, logger log.Logger) error { // Wait for execution engine to be ready. - if err := waitForExecutionEngineToBeReady(ctx, cfg.engine); err != nil { - return err - } + // if err := waitForExecutionEngineToBeReady(ctx, cfg.engine); err != nil { + // return err + // } blockRoot := cfg.startingRoot destinationSlot := uint64(0) currentSlot := cfg.startingSlot @@ -90,31 +69,42 @@ func SpawnStageHistoryDownload(cfg StageHistoryReconstructionCfg, ctx context.Co destinationSlot = currentSlot - cfg.dbCfg.PruneDepth } - executionBlocksCollector := etl.NewCollector("SpawnStageHistoryDownload", cfg.tmpdir, etl.NewSortableBuffer(etl.BufferOptimalSize), logger) + executionBlocksCollector := etl.NewCollector("HistoryDownload", cfg.tmpdir, etl.NewSortableBuffer(etl.BufferOptimalSize), logger) defer executionBlocksCollector.Close() // Start the procedure - logger.Info("Downloading History", "from", currentSlot) + logger.Info("Starting downloading History", "from", currentSlot) // Setup slot and block root cfg.downloader.SetSlotToDownload(currentSlot) cfg.downloader.SetExpectedRoot(blockRoot) - foundLatestEth1ValidHash := false + foundLatestEth1ValidBlock := false if cfg.engine == nil || !cfg.engine.SupportInsertion() { - foundLatestEth1ValidHash = true // skip this if we are not using an engine supporting direct insertion + foundLatestEth1ValidBlock = true // skip this if we are not using an engine supporting direct insertion } var currEth1Progress atomic.Int64 - tx, err := cfg.indiciesDB.BeginTx(ctx, &sql.TxOptions{}) + tx, err := cfg.indiciesDB.BeginRw(ctx) if err != nil { return err } defer tx.Rollback() + + bytesReadIn15Seconds := atomic.Uint64{} // Set up onNewBlock callback cfg.downloader.SetOnNewBlock(func(blk *cltypes.SignedBeaconBlock) (finished bool, err error) { if blk.Version() >= clparams.BellatrixVersion { currEth1Progress.Store(int64(blk.Block.Body.ExecutionPayload.BlockNumber)) } - if !foundLatestEth1ValidHash { + + bytesReadIn15Seconds.Add(uint64(blk.EncodingSizeSSZ())) + + slot := blk.Block.Slot + if destinationSlot <= blk.Block.Slot { + if err := cfg.db.WriteBlock(ctx, tx, blk, true); err != nil { + return false, err + } + } + if !foundLatestEth1ValidBlock { payload := blk.Block.Body.ExecutionPayload encodedPayload, err := payload.EncodeSSZ(nil) if err != nil { @@ -125,34 +115,52 @@ func SpawnStageHistoryDownload(cfg StageHistoryReconstructionCfg, ctx context.Co if err := executionBlocksCollector.Collect(dbutils.BlockBodyKey(payload.BlockNumber, payload.BlockHash), encodedPayload); err != nil { return false, fmt.Errorf("error collecting execution payload during download: %s", err) } + if currEth1Progress.Load()%100 == 0 { + return false, nil + } bodyChainHeader, err := cfg.engine.GetBodiesByHashes([]libcommon.Hash{payload.BlockHash}) if err != nil { return false, fmt.Errorf("error retrieving whether execution payload is present: %s", err) } - foundLatestEth1ValidHash = len(bodyChainHeader) > 0 - } - - slot := blk.Block.Slot - if destinationSlot <= blk.Block.Slot { - if err := cfg.db.WriteBlock(tx, ctx, blk, true); err != nil { - return false, err - } + foundLatestEth1ValidBlock = len(bodyChainHeader) > 0 || cfg.engine.FrozenBlocks() > payload.BlockNumber } - return slot <= destinationSlot && foundLatestEth1ValidHash, nil + return slot <= destinationSlot && foundLatestEth1ValidBlock, nil }) prevProgress := cfg.downloader.Progress() logInterval := time.NewTicker(logIntervalTime) finishCh := make(chan struct{}) // Start logging thread + + go func() { + t := time.NewTicker(15 * time.Second) + for { + select { + case <-t.C: + bytesReadIn15Seconds.Store(0) + case <-ctx.Done(): + return + } + } + }() go func() { for { select { case <-logInterval.C: + if cfg.engine != nil && cfg.engine.SupportInsertion() { + if ready, err := cfg.engine.Ready(); !ready { + if err != nil { + log.Warn("could not log progress", "err", err) + } + continue + } + + } logArgs := []interface{}{} currProgress := cfg.downloader.Progress() - speed := float64(prevProgress-currProgress) / float64(logIntervalTime/time.Second) + blockProgress := float64(prevProgress - currProgress) + speed := blockProgress / float64(logIntervalTime/time.Second) prevProgress = currProgress peerCount, err := cfg.downloader.Peers() if err != nil { @@ -162,6 +170,7 @@ func SpawnStageHistoryDownload(cfg StageHistoryReconstructionCfg, ctx context.Co "slot", currProgress, "blockNumber", currEth1Progress.Load(), "blk/sec", fmt.Sprintf("%.1f", speed), + "mbps/sec", fmt.Sprintf("%.4f", float64(bytesReadIn15Seconds.Load())/(1000*1000*15)), "peers", peerCount) logger.Info("Downloading History", logArgs...) case <-finishCh: @@ -187,6 +196,8 @@ func SpawnStageHistoryDownload(cfg StageHistoryReconstructionCfg, ctx context.Co blockBatch := []*types.Block{} blockBatchMaxSize := 1000 + cfg.logger.Info("Ready to insert history, waiting for sync cycle to finish") + if err := executionBlocksCollector.Load(tx2, kv.Headers, func(k, vComp []byte, _ etl.CurrentTableReader, next etl.LoadNextFunc) error { if cfg.engine == nil || !cfg.engine.SupportInsertion() { return next(k, nil, nil) diff --git a/cl/pool/operations_pool.go b/cl/pool/operations_pool.go index 17c316a4630..949e6fda237 100644 --- a/cl/pool/operations_pool.go +++ b/cl/pool/operations_pool.go @@ -2,10 +2,10 @@ package pool import ( libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/crypto/blake2b" "github.com/ledgerwatch/erigon/cl/clparams" "github.com/ledgerwatch/erigon/cl/cltypes" "github.com/ledgerwatch/erigon/cl/cltypes/solid" - "github.com/ledgerwatch/erigon/crypto/blake2b" ) // DoubleSignatureKey uses blake2b algorithm to merge two signatures together. blake2 is faster than sha3. diff --git a/cl/readme.md b/cl/readme.md new file mode 100644 index 00000000000..e62ff8ef5c7 --- /dev/null +++ b/cl/readme.md @@ -0,0 +1,3 @@ +# cl + +all code under this directory and subdirectories falls under apache 2.0 license, seen in ./LICENSE diff --git a/cl/rpc/rpc.go b/cl/rpc/rpc.go index c9ca3436598..c71501dbb1e 100644 --- a/cl/rpc/rpc.go +++ b/cl/rpc/rpc.go @@ -8,6 +8,9 @@ import ( "io" "time" + "github.com/ledgerwatch/erigon/cl/sentinel/communication" + "github.com/ledgerwatch/erigon/cl/sentinel/communication/ssz_snappy" + "github.com/c2h5oh/datasize" "github.com/golang/snappy" libcommon "github.com/ledgerwatch/erigon-lib/common" @@ -21,9 +24,6 @@ import ( "github.com/ledgerwatch/erigon/cl/cltypes/solid" "github.com/ledgerwatch/erigon/cl/fork" "github.com/ledgerwatch/erigon/cl/utils" - "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel/communication" - "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel/communication/ssz_snappy" - "github.com/ledgerwatch/erigon/common" ) const maxMessageLength = 18 * datasize.MB @@ -67,7 +67,7 @@ func (b *BeaconRpcP2P) sendBlocksRequest(ctx context.Context, topic string, reqD if message.Error { rd := snappy.NewReader(bytes.NewBuffer(message.Data)) errBytes, _ := io.ReadAll(rd) - log.Debug("received range req error", "err", string(errBytes)) + log.Trace("received range req error", "err", string(errBytes), "raw", string(message.Data)) return nil, message.Peer.Pid, nil } @@ -137,7 +137,7 @@ func (b *BeaconRpcP2P) SendBeaconBlocksByRangeReq(ctx context.Context, start, co return nil, "", err } - data := common.CopyBytes(buffer.Bytes()) + data := libcommon.CopyBytes(buffer.Bytes()) return b.sendBlocksRequest(ctx, communication.BeaconBlocksByRangeProtocolV2, data, count) } @@ -151,7 +151,7 @@ func (b *BeaconRpcP2P) SendBeaconBlocksByRootReq(ctx context.Context, roots [][3 if err := ssz_snappy.EncodeAndWrite(&buffer, req); err != nil { return nil, "", err } - data := common.CopyBytes(buffer.Bytes()) + data := libcommon.CopyBytes(buffer.Bytes()) return b.sendBlocksRequest(ctx, communication.BeaconBlocksByRootProtocolV2, data, uint64(len(roots))) } diff --git a/cmd/sentinel/sentinel/communication/ssz_snappy/encoding.go b/cl/sentinel/communication/ssz_snappy/encoding.go similarity index 100% rename from cmd/sentinel/sentinel/communication/ssz_snappy/encoding.go rename to cl/sentinel/communication/ssz_snappy/encoding.go diff --git a/cmd/sentinel/sentinel/communication/topics.go b/cl/sentinel/communication/topics.go similarity index 100% rename from cmd/sentinel/sentinel/communication/topics.go rename to cl/sentinel/communication/topics.go diff --git a/cmd/sentinel/sentinel/config.go b/cl/sentinel/config.go similarity index 100% rename from cmd/sentinel/sentinel/config.go rename to cl/sentinel/config.go diff --git a/cmd/sentinel/sentinel/config_test.go b/cl/sentinel/config_test.go similarity index 100% rename from cmd/sentinel/sentinel/config_test.go rename to cl/sentinel/config_test.go diff --git a/cmd/sentinel/sentinel/discovery.go b/cl/sentinel/discovery.go similarity index 73% rename from cmd/sentinel/sentinel/discovery.go rename to cl/sentinel/discovery.go index 36fe1a6fc61..de596304643 100644 --- a/cmd/sentinel/sentinel/discovery.go +++ b/cl/sentinel/discovery.go @@ -1,16 +1,3 @@ -/* - Copyright 2022 Erigon-Lightclient contributors - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - package sentinel import ( @@ -20,40 +7,37 @@ import ( "github.com/ledgerwatch/erigon/cl/clparams" "github.com/ledgerwatch/erigon/cl/fork" - "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel/peers" "github.com/ledgerwatch/erigon/p2p/enode" "github.com/ledgerwatch/erigon/p2p/enr" "github.com/ledgerwatch/log/v3" "github.com/libp2p/go-libp2p/core/network" "github.com/libp2p/go-libp2p/core/peer" "github.com/multiformats/go-multiaddr" - "github.com/prysmaticlabs/go-bitfield" ) -func (s *Sentinel) ConnectWithPeer(ctx context.Context, info peer.AddrInfo, skipHandshake bool) (err error) { +// ConnectWithPeer is used to attempt to connect and add the peer to our pool +// it errors when if fail to connect with the peer, for instance, if it fails the handshake +// if it does not return an error, the peer is attempted to be added to the pool +func (s *Sentinel) ConnectWithPeer(ctx context.Context, info peer.AddrInfo) (err error) { if info.ID == s.host.ID() { return nil } - s.peers.WithPeer(info.ID, func(peer *peers.Peer) { - if peer.IsBad() { - err = fmt.Errorf("refused to connect to bad peer") - } - }) - if err != nil { - return err + if s.peers.BanStatus(info.ID) { + return fmt.Errorf("refused to connect to bad peer") } ctxWithTimeout, cancel := context.WithTimeout(ctx, clparams.MaxDialTimeout) defer cancel() - if err := s.host.Connect(ctxWithTimeout, info); err != nil { - s.peers.WithPeer(info.ID, func(peer *peers.Peer) { - peer.Disconnect(err.Error()) - }) + err = s.host.Connect(ctxWithTimeout, info) + if err != nil { return err } return nil } +// connectWithAllPeers is a helper function used to connect with a list of addrs. +// it only returns an error on fail to parse multiaddrs +// will print connect with peer errors to trace debug level func (s *Sentinel) connectWithAllPeers(multiAddrs []multiaddr.Multiaddr) error { addrInfos, err := peer.AddrInfosFromP2pAddrs(multiAddrs...) if err != nil { @@ -61,7 +45,7 @@ func (s *Sentinel) connectWithAllPeers(multiAddrs []multiaddr.Multiaddr) error { } for _, peerInfo := range addrInfos { go func(peerInfo peer.AddrInfo) { - if err := s.ConnectWithPeer(s.ctx, peerInfo, true); err != nil { + if err := s.ConnectWithPeer(s.ctx, peerInfo); err != nil { log.Trace("[Sentinel] Could not connect with peer", "err", err) } }(peerInfo) @@ -87,7 +71,6 @@ func (s *Sentinel) listenForPeers() { multiAddresses := convertToMultiAddr(enodes) if err := s.connectWithAllPeers(multiAddresses); err != nil { log.Warn("Could not connect to static peers", "reason", err) - } iterator := s.listener.RandomNodes() @@ -124,7 +107,7 @@ func (s *Sentinel) listenForPeers() { } go func(peerInfo *peer.AddrInfo) { - if err := s.ConnectWithPeer(s.ctx, *peerInfo, false); err != nil { + if err := s.ConnectWithPeer(s.ctx, *peerInfo); err != nil { log.Trace("[Sentinel] Could not connect with peer", "err", err) } }(peerInfo) @@ -161,12 +144,19 @@ func (s *Sentinel) setupENR( func (s *Sentinel) onConnection(net network.Network, conn network.Conn) { go func() { peerId := conn.RemotePeer() - invalid := !s.handshaker.ValidatePeer(peerId) - if invalid { + valid, err := s.handshaker.ValidatePeer(peerId) + if err != nil { + log.Trace("[sentinel] failed to validate peer:", "err", err) + } + if !valid { log.Trace("Handshake was unsuccessful") - s.peers.WithPeer(peerId, func(peer *peers.Peer) { - peer.Disconnect("invalid peer", "bad handshake") - }) + // on handshake fail, we disconnect with said peer, and remove them from our pool + s.host.Peerstore().RemovePeer(peerId) + s.host.Network().ClosePeer(peerId) + s.peers.RemovePeer(peerId) + } else { + // we were able to succesfully connect, so add this peer to our pool + s.peers.AddPeer(peerId) } }() } diff --git a/cmd/sentinel/sentinel/gater.go b/cl/sentinel/gater.go similarity index 100% rename from cmd/sentinel/sentinel/gater.go rename to cl/sentinel/gater.go diff --git a/cmd/sentinel/sentinel/pubsub.go b/cl/sentinel/gossip.go similarity index 67% rename from cmd/sentinel/sentinel/pubsub.go rename to cl/sentinel/gossip.go index f733a4828ca..38af103b890 100644 --- a/cmd/sentinel/sentinel/pubsub.go +++ b/cl/sentinel/gossip.go @@ -1,20 +1,19 @@ -/* - Copyright 2022 Erigon-Lightclient contributors - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ +// Copyright 2022 Erigon-Caplin contributors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. package sentinel import ( "context" + "errors" "fmt" "strings" "sync" @@ -23,6 +22,7 @@ import ( "github.com/ledgerwatch/erigon/cl/fork" "github.com/ledgerwatch/log/v3" pubsub "github.com/libp2p/go-libp2p-pubsub" + "github.com/libp2p/go-libp2p/core/peer" ) var ( @@ -181,21 +181,21 @@ func (s *Sentinel) topicScoreParams(topic string) *pubsub.TopicScoreParams { case strings.Contains(topic, string(BeaconBlockTopic)): return s.defaultBlockTopicParams() /*case strings.Contains(topic, GossipAggregateAndProofMessage): - return defaultAggregateTopicParams(activeValidators), nil + return defaultAggregateTopicParams(activeValidators), nil case strings.Contains(topic, GossipAttestationMessage): - return defaultAggregateSubnetTopicParams(activeValidators), nil + return defaultAggregateSubnetTopicParams(activeValidators), nil case strings.Contains(topic, GossipSyncCommitteeMessage): - return defaultSyncSubnetTopicParams(activeValidators), nil + return defaultSyncSubnetTopicParams(activeValidators), nil case strings.Contains(topic, GossipContributionAndProofMessage): - return defaultSyncContributionTopicParams(), nil + return defaultSyncContributionTopicParams(), nil case strings.Contains(topic, GossipExitMessage): - return defaultVoluntaryExitTopicParams(), nil + return defaultVoluntaryExitTopicParams(), nil case strings.Contains(topic, GossipProposerSlashingMessage): - return defaultProposerSlashingTopicParams(), nil + return defaultProposerSlashingTopicParams(), nil case strings.Contains(topic, GossipAttesterSlashingMessage): - return defaultAttesterSlashingTopicParams(), nil + return defaultAttesterSlashingTopicParams(), nil case strings.Contains(topic, GossipBlsToExecutionChangeMessage): - return defaultBlsToExecutionChangeTopicParams(), nil*/ + return defaultBlsToExecutionChangeTopicParams(), nil*/ default: return nil } @@ -234,3 +234,89 @@ func (g *GossipManager) Close() { } } } + +// GossipSubscription abstracts a gossip subscription to write decoded structs. +type GossipSubscription struct { + gossip_topic GossipTopic + host peer.ID + ch chan *pubsub.Message + ctx context.Context + + topic *pubsub.Topic + sub *pubsub.Subscription + + cf context.CancelFunc + rf pubsub.RelayCancelFunc + + setup sync.Once + stopCh chan struct{} +} + +func (sub *GossipSubscription) Listen() (err error) { + sub.setup.Do(func() { + sub.stopCh = make(chan struct{}, 3) + sub.sub, err = sub.topic.Subscribe() + if err != nil { + err = fmt.Errorf("failed to begin topic %s subscription, err=%w", sub.topic.String(), err) + return + } + var sctx context.Context + sctx, sub.cf = context.WithCancel(sub.ctx) + go sub.run(sctx, sub.sub, sub.sub.Topic()) + }) + return nil +} + +// calls the cancel func for the subscriber and closes the topic and sub +func (s *GossipSubscription) Close() { + s.stopCh <- struct{}{} + if s.cf != nil { + s.cf() + } + if s.rf != nil { + s.rf() + } + if s.sub != nil { + s.sub.Cancel() + s.sub = nil + } + if s.topic != nil { + s.topic.Close() + s.topic = nil + } +} + +// this is a helper to begin running the gossip subscription. +// function should not be used outside of the constructor for gossip subscription +func (s *GossipSubscription) run(ctx context.Context, sub *pubsub.Subscription, topic string) { + defer func() { + if r := recover(); r != nil { + log.Error("[Sentinel Gossip] Message Handler Crashed", "err", r) + } + }() + for { + select { + case <-ctx.Done(): + return + case <-s.stopCh: + return + default: + msg, err := sub.Next(ctx) + if err != nil { + if errors.Is(err, context.Canceled) { + return + } + log.Warn("[Sentinel] fail to decode gossip packet", "err", err, "topic", topic) + return + } + if msg.GetFrom() == s.host { + continue + } + s.ch <- msg + } + } +} + +func (g *GossipSubscription) Publish(data []byte) error { + return g.topic.Publish(g.ctx, data) +} diff --git a/cmd/sentinel/sentinel/handlers/blocks.go b/cl/sentinel/handlers/blocks.go similarity index 95% rename from cmd/sentinel/sentinel/handlers/blocks.go rename to cl/sentinel/handlers/blocks.go index 5426d619113..21f4aca2a33 100644 --- a/cmd/sentinel/sentinel/handlers/blocks.go +++ b/cl/sentinel/handlers/blocks.go @@ -14,7 +14,7 @@ package handlers import ( - "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel/communication/ssz_snappy" + "github.com/ledgerwatch/erigon/cl/sentinel/communication/ssz_snappy" "github.com/ledgerwatch/log/v3" "github.com/libp2p/go-libp2p/core/network" ) diff --git a/cmd/sentinel/sentinel/handlers/handlers.go b/cl/sentinel/handlers/handlers.go similarity index 90% rename from cmd/sentinel/sentinel/handlers/handlers.go rename to cl/sentinel/handlers/handlers.go index 062f206d598..b5e2f3b4ac2 100644 --- a/cmd/sentinel/sentinel/handlers/handlers.go +++ b/cl/sentinel/handlers/handlers.go @@ -17,11 +17,12 @@ import ( "context" "strings" + "github.com/ledgerwatch/erigon/cl/sentinel/communication" + "github.com/ledgerwatch/erigon/cl/sentinel/peers" + "github.com/ledgerwatch/erigon/cl/clparams" "github.com/ledgerwatch/erigon/cl/cltypes" "github.com/ledgerwatch/erigon/cl/persistence" - "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel/communication" - "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel/peers" "github.com/ledgerwatch/log/v3" "github.com/libp2p/go-libp2p/core/host" "github.com/libp2p/go-libp2p/core/network" @@ -31,7 +32,6 @@ import ( type ConsensusHandlers struct { handlers map[protocol.ID]network.StreamHandler host host.Host - peers *peers.Manager metadata *cltypes.Metadata beaconConfig *clparams.BeaconChainConfig genesisConfig *clparams.GenesisConfig @@ -46,9 +46,8 @@ const ( ) func NewConsensusHandlers(ctx context.Context, db persistence.RawBeaconBlockChain, host host.Host, - peers *peers.Manager, beaconConfig *clparams.BeaconChainConfig, genesisConfig *clparams.GenesisConfig, metadata *cltypes.Metadata) *ConsensusHandlers { + peers *peers.Pool, beaconConfig *clparams.BeaconChainConfig, genesisConfig *clparams.GenesisConfig, metadata *cltypes.Metadata) *ConsensusHandlers { c := &ConsensusHandlers{ - peers: peers, host: host, metadata: metadata, beaconDB: db, diff --git a/cmd/sentinel/sentinel/handlers/heartbeats.go b/cl/sentinel/handlers/heartbeats.go similarity index 96% rename from cmd/sentinel/sentinel/handlers/heartbeats.go rename to cl/sentinel/handlers/heartbeats.go index f42b345c0c9..8956a4b547a 100644 --- a/cmd/sentinel/sentinel/handlers/heartbeats.go +++ b/cl/sentinel/handlers/heartbeats.go @@ -16,7 +16,7 @@ package handlers import ( "github.com/ledgerwatch/erigon/cl/clparams" "github.com/ledgerwatch/erigon/cl/cltypes" - "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel/communication/ssz_snappy" + "github.com/ledgerwatch/erigon/cl/sentinel/communication/ssz_snappy" "github.com/libp2p/go-libp2p/core/network" ) diff --git a/cmd/sentinel/sentinel/handshake/handshake.go b/cl/sentinel/handshake/handshake.go similarity index 56% rename from cmd/sentinel/sentinel/handshake/handshake.go rename to cl/sentinel/handshake/handshake.go index e755e62a676..f5b6baadf07 100644 --- a/cmd/sentinel/sentinel/handshake/handshake.go +++ b/cl/sentinel/handshake/handshake.go @@ -3,17 +3,19 @@ package handshake import ( "bytes" "context" + "fmt" + "io" + "net/http" "sync" + communication2 "github.com/ledgerwatch/erigon/cl/sentinel/communication" + "github.com/ledgerwatch/erigon/cl/sentinel/communication/ssz_snappy" + "github.com/ledgerwatch/erigon/cl/sentinel/httpreqresp" + "github.com/ledgerwatch/erigon/cl/clparams" "github.com/ledgerwatch/erigon/cl/cltypes" "github.com/ledgerwatch/erigon/cl/fork" - "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel/communication" - "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel/communication/ssz_snappy" - "github.com/ledgerwatch/erigon/common" - "github.com/libp2p/go-libp2p/core/host" "github.com/libp2p/go-libp2p/core/peer" - "go.uber.org/zap/buffer" ) // HandShaker is the data type which will handle handshakes and determine if @@ -23,17 +25,17 @@ type HandShaker struct { // Status object to send over. status *cltypes.Status // Contains status object for handshakes set bool - host host.Host + handler http.Handler genesisConfig *clparams.GenesisConfig beaconConfig *clparams.BeaconChainConfig mu sync.Mutex } -func New(ctx context.Context, genesisConfig *clparams.GenesisConfig, beaconConfig *clparams.BeaconChainConfig, host host.Host) *HandShaker { +func New(ctx context.Context, genesisConfig *clparams.GenesisConfig, beaconConfig *clparams.BeaconChainConfig, handler http.Handler) *HandShaker { return &HandShaker{ ctx: ctx, - host: host, + handler: handler, genesisConfig: genesisConfig, beaconConfig: beaconConfig, status: &cltypes.Status{}, @@ -62,31 +64,41 @@ func (h *HandShaker) IsSet() bool { return h.set } -func (h *HandShaker) ValidatePeer(id peer.ID) bool { +func (h *HandShaker) ValidatePeer(id peer.ID) (bool, error) { // Unprotected if it is not set if !h.IsSet() { - return true + return true, nil } status := h.Status() // Encode our status - var buffer buffer.Buffer - if err := ssz_snappy.EncodeAndWrite(&buffer, status); err != nil { - return false + buf := new(bytes.Buffer) + if err := ssz_snappy.EncodeAndWrite(buf, status); err != nil { + return false, err } - - data := common.CopyBytes(buffer.Bytes()) - response, errResponse, err := communication.SendRequestRawToPeer(h.ctx, h.host, data, communication.StatusProtocolV1, id) - if err != nil || errResponse > 0 { - return false + req, err := http.NewRequest("GET", "http://service.internal/", buf) + if err != nil { + return false, err + } + req.Header.Set("REQRESP-PEER-ID", id.String()) + req.Header.Set("REQRESP-TOPIC", communication2.StatusProtocolV1) + resp, err := httpreqresp.Do(h.handler, req) + if err != nil { + return false, err + } + defer resp.Body.Close() + if resp.Header.Get("REQRESP-RESPONSE-CODE") != "0" { + a, _ := io.ReadAll(resp.Body) + //TODO: proper errors + return false, fmt.Errorf("handshake error: %s", string(a)) } responseStatus := &cltypes.Status{} - if err := ssz_snappy.DecodeAndReadNoForkDigest(bytes.NewReader(response), responseStatus, clparams.Phase0Version); err != nil { - return false + if err := ssz_snappy.DecodeAndReadNoForkDigest(resp.Body, responseStatus, clparams.Phase0Version); err != nil { + return false, nil } forkDigest, err := fork.ComputeForkDigest(h.beaconConfig, h.genesisConfig) if err != nil { - return false + return false, nil } - return responseStatus.ForkDigest == forkDigest + return responseStatus.ForkDigest == forkDigest, nil } diff --git a/cl/sentinel/httpreqresp/server.go b/cl/sentinel/httpreqresp/server.go new file mode 100644 index 00000000000..f9daabe1653 --- /dev/null +++ b/cl/sentinel/httpreqresp/server.go @@ -0,0 +1,122 @@ +// package httpreqresp encapsulates eth2 beacon chain resp-resp into http +package httpreqresp + +import ( + "io" + "net/http" + "net/http/httptest" + "strconv" + "time" + + "github.com/libp2p/go-libp2p/core/host" + "github.com/libp2p/go-libp2p/core/peer" + "github.com/libp2p/go-libp2p/core/protocol" +) + +const ( + ResponseCodeHeader = "Reqresp-Response-Code" + PeerIdHeader = "Reqresp-Peer-Id" + TopicHeader = "Reqresp-Topic" +) + +// Do performs an http request against the http handler. +// NOTE: this is actually very similar to the http.RoundTripper interface... maybe we should investigate using that. +/* + +the following headers have meaning when passed in to the request: + + REQRESP-PEER-ID - the peer id to target for the request + REQRESP-TOPIC - the topic to request with + REQRESP-EXPECTED-CHUNKS - this is an integer, which will be multiplied by 10 to calculate the amount of seconds the peer has to respond with all the data +*/ +func Do(handler http.Handler, r *http.Request) (*http.Response, error) { + // TODO: there potentially extra alloc here (responses are bufferd) + // is that a big deal? not sure. maybe can reuse these buffers since they are read once (and known when close) if so + ans := make(chan *http.Response) + go func() { + res := httptest.NewRecorder() + handler.ServeHTTP(res, r) + // linter does not know we are passing the resposne through channel. + // nolint: bodyclose + resp := res.Result() + ans <- resp + }() + select { + case res := <-ans: + return res, nil + case <-r.Context().Done(): + return nil, r.Context().Err() + } +} + +// Handles a request +func NewRequestHandler(host host.Host) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + // get the peer parameters + peerIdBase58 := r.Header.Get("REQRESP-PEER-ID") + topic := r.Header.Get("REQRESP-TOPIC") + chunkCount := r.Header.Get("REQRESP-EXPECTED-CHUNKS") + chunks, _ := strconv.Atoi(chunkCount) + // some sanity checking on chunks + if chunks < 1 { + chunks = 1 + } + // idk why this would happen, so lets make sure it doesnt. future-proofing from bad input + if chunks > 512 { + chunks = 512 + } + // read the base58 encoded peer id to know which we are trying to dial + peerId, err := peer.Decode(peerIdBase58) + if err != nil { + http.Error(w, "Invalid Peer Id", http.StatusBadRequest) + return + } + // we can't connect to the peer - so we should disconnect them. send a code 4xx + stream, err := host.NewStream(r.Context(), peerId, protocol.ID(topic)) + if err != nil { + http.Error(w, "Can't Connect to Peer: "+err.Error(), http.StatusBadRequest) + return + } + defer stream.Close() + // this write deadline is not part of the eth p2p spec, but we are implying it. + stream.SetWriteDeadline(time.Now().Add(5 * time.Second)) + if r.Body != nil && r.ContentLength > 0 { + _, err := io.Copy(stream, r.Body) + if err != nil { + http.Error(w, "Processing Stream: "+err.Error(), http.StatusBadRequest) + return + } + } + err = stream.CloseWrite() + if err != nil { + http.Error(w, "Close Write Side: "+err.Error(), http.StatusBadRequest) + return + } + code := make([]byte, 1) + // we have 5 seconds to read the next byte. this is the 5 TTFB_TIMEOUT in the spec + stream.SetReadDeadline(time.Now().Add(5 * time.Second)) + _, err = io.ReadFull(stream, code) + if err != nil { + http.Error(w, "Read Code: "+err.Error(), http.StatusBadRequest) + return + } + // this is not neccesary, but seems like the right thing to do + w.Header().Set("CONTENT-TYPE", "application/octet-stream") + w.Header().Set("CONTENT-ENCODING", "snappy/stream") + // add the response code & headers + w.Header().Set("REQRESP-RESPONSE-CODE", strconv.Itoa(int(code[0]))) + w.Header().Set("REQRESP-PEER-ID", peerIdBase58) + w.Header().Set("REQRESP-TOPIC", topic) + // the deadline is 10 * expected chunk count, which the user can send. otherwise we will only wait 10 seconds + // this is technically incorrect, and more aggressive than the network might like. + stream.SetReadDeadline(time.Now().Add(10 * time.Second * time.Duration(chunks))) + // copy the data now to the stream + // the first write to w will call code 200, so we do not need to + _, err = io.Copy(w, stream) + if err != nil { + http.Error(w, "Reading Stream Response: "+err.Error(), http.StatusBadRequest) + return + } + return + } +} diff --git a/cl/sentinel/libp2p_settings.go b/cl/sentinel/libp2p_settings.go new file mode 100644 index 00000000000..82ce46f5368 --- /dev/null +++ b/cl/sentinel/libp2p_settings.go @@ -0,0 +1,66 @@ +package sentinel + +import ( + "math" + "time" + + pubsub "github.com/libp2p/go-libp2p-pubsub" + "github.com/libp2p/go-libp2p/core/peer" +) + +// determines the decay rate from the provided time period till +// the decayToZero value. Ex: ( 1 -> 0.01) +func (s *Sentinel) scoreDecay(totalDurationDecay time.Duration) float64 { + numOfTimes := totalDurationDecay / s.oneSlotDuration() + return math.Pow(decayToZero, 1/float64(numOfTimes)) +} + +func (s *Sentinel) pubsubOptions() []pubsub.Option { + thresholds := &pubsub.PeerScoreThresholds{ + GossipThreshold: -4000, + PublishThreshold: -8000, + GraylistThreshold: -16000, + AcceptPXThreshold: 100, + OpportunisticGraftThreshold: 5, + } + scoreParams := &pubsub.PeerScoreParams{ + Topics: make(map[string]*pubsub.TopicScoreParams), + TopicScoreCap: 32.72, + AppSpecificScore: func(p peer.ID) float64 { + return 0 + }, + AppSpecificWeight: 1, + IPColocationFactorWeight: -35.11, + IPColocationFactorThreshold: 10, + IPColocationFactorWhitelist: nil, + BehaviourPenaltyWeight: -15.92, + BehaviourPenaltyThreshold: 6, + BehaviourPenaltyDecay: s.scoreDecay(10 * s.oneEpochDuration()), // 10 epochs + DecayInterval: s.oneSlotDuration(), + DecayToZero: decayToZero, + RetainScore: 100 * s.oneEpochDuration(), // Retain for 100 epochs + } + pubsubQueueSize := 600 + psOpts := []pubsub.Option{ + pubsub.WithMessageSignaturePolicy(pubsub.StrictNoSign), + pubsub.WithMessageIdFn(s.msgId), + pubsub.WithNoAuthor(), + pubsub.WithPeerOutboundQueueSize(pubsubQueueSize), + pubsub.WithMaxMessageSize(int(s.cfg.NetworkConfig.GossipMaxSizeBellatrix)), + pubsub.WithValidateQueueSize(pubsubQueueSize), + pubsub.WithPeerScore(scoreParams, thresholds), + pubsub.WithGossipSubParams(pubsubGossipParam()), + } + return psOpts +} + +// creates a custom gossipsub parameter set. +func pubsubGossipParam() pubsub.GossipSubParams { + gParams := pubsub.DefaultGossipSubParams() + gParams.Dlo = gossipSubDlo + gParams.D = gossipSubD + gParams.HeartbeatInterval = gossipSubHeartbeatInterval + gParams.HistoryLength = gossipSubMcacheLen + gParams.HistoryGossip = gossipSubMcacheGossip + return gParams +} diff --git a/cmd/sentinel/sentinel/msg_id.go b/cl/sentinel/msg_id.go similarity index 100% rename from cmd/sentinel/sentinel/msg_id.go rename to cl/sentinel/msg_id.go diff --git a/cmd/sentinel/sentinel/msg_id_test.go b/cl/sentinel/msg_id_test.go similarity index 100% rename from cmd/sentinel/sentinel/msg_id_test.go rename to cl/sentinel/msg_id_test.go diff --git a/cl/sentinel/peers/manager.go b/cl/sentinel/peers/manager.go deleted file mode 100644 index 033c99f074f..00000000000 --- a/cl/sentinel/peers/manager.go +++ /dev/null @@ -1,66 +0,0 @@ -package peers - -import ( - "context" - "sync" - "time" - - "github.com/ledgerwatch/erigon/cl/phase1/core/state/lru" - "github.com/libp2p/go-libp2p/core/host" - "github.com/libp2p/go-libp2p/core/peer" -) - -const ( - maxBadPeers = 50000 - maxPeerRecordSize = 1000 - DefaultMaxPeers = 33 - MaxBadResponses = 50 -) - -func newPeer() *Peer { - return &Peer{ - lastTouched: time.Now(), - working: make(chan struct{}), - } -} - -type Manager struct { - host host.Host - peers *lru.Cache[peer.ID, *Peer] - peerTimeout time.Duration - - mu sync.Mutex -} - -func NewManager(ctx context.Context, host host.Host) *Manager { - c, err := lru.NewWithEvict("beacon_peer_manager", 500, func(i peer.ID, p *Peer) { - p.Disconnect("booted for inactivity") - }) - if err != nil { - panic(err) - } - m := &Manager{ - peerTimeout: 8 * time.Hour, - peers: c, - host: host, - } - return m -} - -func (m *Manager) GetPeer(id peer.ID) (peer *Peer) { - m.mu.Lock() - p, ok := m.peers.Get(id) - if !ok { - p = &Peer{ - pid: id, - working: make(chan struct{}, 1), - m: m, - penalties: 0, - banned: false, - } - m.peers.Add(id, p) - } - p.lastTouched = time.Now() - m.mu.Unlock() - return p -} diff --git a/cl/sentinel/peers/peer.go b/cl/sentinel/peers/peer.go deleted file mode 100644 index 026b319a928..00000000000 --- a/cl/sentinel/peers/peer.go +++ /dev/null @@ -1,154 +0,0 @@ -package peers - -import ( - "strings" - "sync" - "time" - - "github.com/ledgerwatch/log/v3" - "github.com/libp2p/go-libp2p/core/peer" -) - -const USERAGENT_UNKNOWN = "unknown" - -type PeeredObject[T any] struct { - Peer string - Data T -} - -// Record Peer data. -type Peer struct { - penalties int - banned bool - - // request info - lastRequest time.Time - successCount int - useCount int - // gc data - lastTouched time.Time - - mu sync.Mutex - - // peer id - pid peer.ID - - // acts as the mutex for making requests. channel used to avoid use of TryLock - working chan struct{} - // backref to the manager that owns this peer - m *Manager -} - -func (p *Peer) do(fn func(p *Peer)) { - if fn == nil { - return - } - p.mu.Lock() - defer p.mu.Unlock() - fn(p) -} - -func (p *Peer) UserAgent() string { - rawVer, err := p.m.host.Peerstore().Get(p.pid, "AgentVersion") - if err == nil { - if str, ok := rawVer.(string); ok { - return str - } - } - return USERAGENT_UNKNOWN -} - -func (p *Peer) Penalize() { - log.Trace("[Sentinel Peers] peer penalized", "peer-id", p.pid) - p.do(func(p *Peer) { - p.penalties++ - }) -} - -func (p *Peer) Forgive() { - log.Trace("[Sentinel Peers] peer forgiven", "peer-id", p.pid) - p.do(func(p *Peer) { - if p.penalties > 0 { - p.penalties-- - } - }) -} - -func (p *Peer) MarkUsed() { - p.do(func(p *Peer) { - p.useCount++ - p.lastRequest = time.Now() - }) - log.Trace("[Sentinel Peers] peer used", "peer-id", p.pid, "uses", p.useCount) -} - -func (p *Peer) MarkReplied() { - p.do(func(p *Peer) { - p.successCount++ - }) - log.Trace("[Sentinel Peers] peer replied", "peer-id", p.pid, "uses", p.useCount, "success", p.successCount) -} - -func (p *Peer) IsAvailable() (available bool) { - p.mu.Lock() - defer p.mu.Unlock() - if p.banned { - return false - } - if p.penalties > MaxBadResponses { - return false - } - if time.Now().Sub(p.lastRequest) > 0*time.Second { - return true - } - return false -} - -func (p *Peer) IsBad() (bad bool) { - p.mu.Lock() - defer p.mu.Unlock() - if p.banned { - bad = true - return - } - bad = p.penalties > MaxBadResponses - return -} - -var skipReasons = []string{ - "bad handshake", - "context", - "security protocol", - "connect:", - "dial backoff", -} - -func anySetInString(set []string, in string) bool { - for _, v := range skipReasons { - if strings.Contains(in, v) { - return true - } - } - return false -} - -func (p *Peer) Disconnect(reason ...string) { - rzn := strings.Join(reason, " ") - if !anySetInString(skipReasons, rzn) { - log.Trace("[Sentinel Peers] disconnecting from peer", "peer-id", p.pid, "reason", strings.Join(reason, " ")) - } - p.m.host.Peerstore().RemovePeer(p.pid) - p.m.host.Network().ClosePeer(p.pid) - p.do(func(p *Peer) { - p.penalties = 0 - }) -} - -func (p *Peer) Ban(reason ...string) { - log.Debug("[Sentinel Peers] bad peers has been banned", "peer-id", p.pid, "reason", strings.Join(reason, " ")) - p.do(func(p *Peer) { - p.banned = true - }) - p.Disconnect(reason...) - return -} diff --git a/cl/sentinel/peers/peers.go b/cl/sentinel/peers/peers.go new file mode 100644 index 00000000000..443aa660980 --- /dev/null +++ b/cl/sentinel/peers/peers.go @@ -0,0 +1,13 @@ +package peers + +const ( + maxBadPeers = 50000 + maxPeerRecordSize = 1000 + DefaultMaxPeers = 64 + MaxBadResponses = 50 +) + +type PeeredObject[T any] struct { + Peer string + Data T +} diff --git a/cl/sentinel/peers/pool.go b/cl/sentinel/peers/pool.go new file mode 100644 index 00000000000..e5237b6abdd --- /dev/null +++ b/cl/sentinel/peers/pool.go @@ -0,0 +1,141 @@ +package peers + +import ( + "fmt" + "sync" + "sync/atomic" + + "github.com/ledgerwatch/erigon-lib/common/ring" + "github.com/libp2p/go-libp2p/core/peer" +) + +// Item is an item in the pool +type Item struct { + id peer.ID + score atomic.Int64 + uses int +} + +func (i *Item) Id() peer.ID { + return i.id +} + +func (i *Item) String() string { + return i.id.String() +} + +func (i *Item) Score() int { + return int(i.score.Load()) +} + +func (i *Item) Add(n int) int { + return int(i.score.Add(int64(n))) +} + +// PeerPool is a pool of peers +type Pool struct { + + // allowedPeers are the peers that are allowed. + // peers not on this list will be silently discarded + // when returned, and skipped when requesting + peerData map[peer.ID]*Item + + bannedPeers map[peer.ID]struct{} + queue *ring.Buffer[*Item] + + mu sync.Mutex +} + +func NewPool() *Pool { + return &Pool{ + peerData: make(map[peer.ID]*Item), + bannedPeers: map[peer.ID]struct{}{}, + queue: ring.NewBuffer[*Item](0, 1024), + } +} + +func (p *Pool) BanStatus(pid peer.ID) bool { + _, ok := p.bannedPeers[pid] + return ok +} + +func (p *Pool) AddPeer(pid peer.ID) { + p.mu.Lock() + defer p.mu.Unlock() + // if peer banned, return immediately + if _, ok := p.bannedPeers[pid]; ok { + return + } + // if peer already here, return immediately + if _, ok := p.peerData[pid]; ok { + return + } + newItem := &Item{ + id: pid, + } + p.peerData[pid] = newItem + // add it to our queue as a new item + p.queue.PushBack(newItem) +} + +func (p *Pool) SetBanStatus(pid peer.ID, banned bool) { + p.mu.Lock() + defer p.mu.Unlock() + if banned { + p.bannedPeers[pid] = struct{}{} + delete(p.peerData, pid) + } else { + delete(p.bannedPeers, pid) + } +} + +func (p *Pool) RemovePeer(pid peer.ID) { + p.mu.Lock() + defer p.mu.Unlock() + delete(p.peerData, pid) +} + +// returnPeer is an internal function to return per to the pool. assume has lock +func (p *Pool) returnPeer(i *Item) { + // if peer not in our map, return and do not return peer + if _, ok := p.peerData[i.id]; !ok { + return + } + // append peer to the end of our ring buffer + p.queue.PushBack(i) +} + +// nextPeer gets next peer, skipping bad peers. assume has lock +func (p *Pool) nextPeer() (i *Item, ok bool) { + val, ok := p.queue.PopFront() + if !ok { + return nil, false + } + // if peer been banned, get next peer + if _, ok := p.bannedPeers[val.id]; ok { + return p.nextPeer() + } + // if peer not in set, get next peer + if _, ok := p.peerData[val.id]; !ok { + return p.nextPeer() + } + return val, true +} + +// Request a peer from the pool +// caller MUST call the done function when done with peer IFF err != nil +func (p *Pool) Request() (pid *Item, done func(), err error) { + p.mu.Lock() + defer p.mu.Unlock() + //grab a peer from our ringbuffer + val, ok := p.queue.PopFront() + if !ok { + return nil, nil, fmt.Errorf("no peers? ( :( > ") + } + return val, func() { + p.mu.Lock() + defer p.mu.Unlock() + val.uses = val.uses + 1 + p.returnPeer(val) + }, nil +} diff --git a/cl/sentinel/peers/readme.md b/cl/sentinel/peers/readme.md deleted file mode 100644 index 8804be80f7b..00000000000 --- a/cl/sentinel/peers/readme.md +++ /dev/null @@ -1,4 +0,0 @@ -## wip - - -this is work in progress diff --git a/cmd/sentinel/sentinel/sentinel.go b/cl/sentinel/sentinel.go similarity index 72% rename from cmd/sentinel/sentinel/sentinel.go rename to cl/sentinel/sentinel.go index 3ce1d33780c..51fab5101fb 100644 --- a/cmd/sentinel/sentinel/sentinel.go +++ b/cl/sentinel/sentinel.go @@ -17,15 +17,18 @@ import ( "context" "crypto/ecdsa" "fmt" - "math" "net" + "net/http" "time" + "github.com/go-chi/chi/v5" + "github.com/ledgerwatch/erigon/cl/sentinel/handlers" + "github.com/ledgerwatch/erigon/cl/sentinel/handshake" + "github.com/ledgerwatch/erigon/cl/sentinel/httpreqresp" + "github.com/ledgerwatch/erigon/cl/sentinel/peers" + "github.com/ledgerwatch/erigon/cl/cltypes" "github.com/ledgerwatch/erigon/cl/persistence" - "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel/handlers" - "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel/handshake" - "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel/peers" "github.com/ledgerwatch/erigon/crypto" "github.com/ledgerwatch/erigon/p2p/discover" "github.com/ledgerwatch/erigon/p2p/enode" @@ -59,12 +62,15 @@ const ( ) type Sentinel struct { - started bool - listener *discover.UDPv5 // this is us in the network. - ctx context.Context - host host.Host - cfg *SentinelConfig - peers *peers.Manager + started bool + listener *discover.UDPv5 // this is us in the network. + ctx context.Context + host host.Host + cfg *SentinelConfig + peers *peers.Pool + + httpApi http.Handler + metadataV2 *cltypes.Metadata handshaker *handshake.HandShaker @@ -169,63 +175,6 @@ func (s *Sentinel) createListener() (*discover.UDPv5, error) { return net, err } -// creates a custom gossipsub parameter set. -func pubsubGossipParam() pubsub.GossipSubParams { - gParams := pubsub.DefaultGossipSubParams() - gParams.Dlo = gossipSubDlo - gParams.D = gossipSubD - gParams.HeartbeatInterval = gossipSubHeartbeatInterval - gParams.HistoryLength = gossipSubMcacheLen - gParams.HistoryGossip = gossipSubMcacheGossip - return gParams -} - -// determines the decay rate from the provided time period till -// the decayToZero value. Ex: ( 1 -> 0.01) -func (s *Sentinel) scoreDecay(totalDurationDecay time.Duration) float64 { - numOfTimes := totalDurationDecay / s.oneSlotDuration() - return math.Pow(decayToZero, 1/float64(numOfTimes)) -} - -func (s *Sentinel) pubsubOptions() []pubsub.Option { - thresholds := &pubsub.PeerScoreThresholds{ - GossipThreshold: -4000, - PublishThreshold: -8000, - GraylistThreshold: -16000, - AcceptPXThreshold: 100, - OpportunisticGraftThreshold: 5, - } - scoreParams := &pubsub.PeerScoreParams{ - Topics: make(map[string]*pubsub.TopicScoreParams), - TopicScoreCap: 32.72, - AppSpecificScore: func(p peer.ID) float64 { - return 0 - }, - AppSpecificWeight: 1, - IPColocationFactorWeight: -35.11, - IPColocationFactorThreshold: 10, - IPColocationFactorWhitelist: nil, - BehaviourPenaltyWeight: -15.92, - BehaviourPenaltyThreshold: 6, - BehaviourPenaltyDecay: s.scoreDecay(10 * s.oneEpochDuration()), // 10 epochs - DecayInterval: s.oneSlotDuration(), - DecayToZero: decayToZero, - RetainScore: 100 * s.oneEpochDuration(), // Retain for 100 epochs - } - pubsubQueueSize := 600 - psOpts := []pubsub.Option{ - pubsub.WithMessageSignaturePolicy(pubsub.StrictNoSign), - pubsub.WithMessageIdFn(s.msgId), - pubsub.WithNoAuthor(), - pubsub.WithPeerOutboundQueueSize(pubsubQueueSize), - pubsub.WithMaxMessageSize(int(s.cfg.NetworkConfig.GossipMaxSizeBellatrix)), - pubsub.WithValidateQueueSize(pubsubQueueSize), - pubsub.WithPeerScore(scoreParams, thresholds), - pubsub.WithGossipSubParams(pubsubGossipParam()), - } - return psOpts -} - // This is just one of the examples from the libp2p repository. func New( ctx context.Context, @@ -263,19 +212,16 @@ func New( if err != nil { return nil, err } - if s.metrics { - - str, err := rcmgrObs.NewStatsTraceReporter() - if err != nil { - return nil, err - } + str, err := rcmgrObs.NewStatsTraceReporter() + if err != nil { + return nil, err + } - rmgr, err := rcmgr.NewResourceManager(rcmgr.NewFixedLimiter(rcmgr.DefaultLimits.AutoScale()), rcmgr.WithTraceReporter(str)) - if err != nil { - return nil, err - } - opts = append(opts, libp2p.ResourceManager(rmgr)) + rmgr, err := rcmgr.NewResourceManager(rcmgr.NewFixedLimiter(rcmgr.DefaultLimits.AutoScale()), rcmgr.WithTraceReporter(str)) + if err != nil { + return nil, err } + opts = append(opts, libp2p.ResourceManager(rmgr)) gater, err := NewGater(cfg) if err != nil { @@ -288,11 +234,16 @@ func New( if err != nil { return nil, err } + s.host = host - s.handshaker = handshake.New(ctx, cfg.GenesisConfig, cfg.BeaconConfig, host) + s.peers = peers.NewPool() - s.host = host - s.peers = peers.NewManager(ctx, s.host) + mux := chi.NewRouter() + // mux := httpreqresp.NewRequestHandler(host) + mux.Get("/", httpreqresp.NewRequestHandler(host)) + s.httpApi = mux + + s.handshaker = handshake.New(ctx, cfg.GenesisConfig, cfg.BeaconConfig, s.httpApi) pubsub.TimeCacheDuration = 550 * gossipSubHeartbeatInterval s.pubsub, err = pubsub.NewGossipSub(s.ctx, s.host, s.pubsubOptions()...) @@ -303,6 +254,10 @@ func New( return s, nil } +func (s *Sentinel) ReqRespHandler() http.Handler { + return s.httpApi +} + func (s *Sentinel) RecvGossip() <-chan *pubsub.Message { return s.subManager.Recv() } @@ -323,6 +278,10 @@ func (s *Sentinel) Start() error { // Configuring handshake s.host.Network().Notify(&network.NotifyBundle{ ConnectedF: s.onConnection, + DisconnectedF: func(n network.Network, c network.Conn) { + peerId := c.RemotePeer() + s.peers.RemovePeer(peerId) + }, }) s.subManager = NewGossipManager(s.ctx) @@ -360,7 +319,7 @@ func (s *Sentinel) Host() host.Host { return s.host } -func (s *Sentinel) Peers() *peers.Manager { +func (s *Sentinel) Peers() *peers.Pool { return s.peers } diff --git a/cmd/sentinel/sentinel/service/notifiers.go b/cl/sentinel/service/notifiers.go similarity index 100% rename from cmd/sentinel/sentinel/service/notifiers.go rename to cl/sentinel/service/notifiers.go diff --git a/cmd/sentinel/sentinel/service/service.go b/cl/sentinel/service/service.go similarity index 59% rename from cmd/sentinel/sentinel/service/service.go rename to cl/sentinel/service/service.go index df2a068d8a5..41b93354962 100644 --- a/cmd/sentinel/sentinel/service/service.go +++ b/cl/sentinel/service/service.go @@ -1,21 +1,26 @@ package service import ( + "bytes" "context" "errors" "fmt" + "io" + "net/http" "strconv" "strings" "sync" "time" + "github.com/ledgerwatch/erigon-lib/diagnostics" + "github.com/ledgerwatch/erigon/cl/sentinel" + "github.com/ledgerwatch/erigon/cl/sentinel/httpreqresp" + "github.com/ledgerwatch/erigon/cl/sentinel/peers" + "github.com/ledgerwatch/erigon-lib/gointerfaces" sentinelrpc "github.com/ledgerwatch/erigon-lib/gointerfaces/sentinel" "github.com/ledgerwatch/erigon/cl/cltypes" "github.com/ledgerwatch/erigon/cl/utils" - "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel" - "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel/communication" - "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel/peers" "github.com/ledgerwatch/log/v3" pubsub "github.com/libp2p/go-libp2p-pubsub" "github.com/libp2p/go-libp2p/core/peer" @@ -30,6 +35,8 @@ type SentinelServer struct { mu sync.RWMutex logger log.Logger + + peerStatistics map[string]*diagnostics.PeerStatistics } func NewSentinelServer(ctx context.Context, sentinel *sentinel.Sentinel, logger log.Logger) *SentinelServer { @@ -38,6 +45,7 @@ func NewSentinelServer(ctx context.Context, sentinel *sentinel.Sentinel, logger ctx: ctx, gossipNotifier: newGossipNotifier(), logger: logger, + peerStatistics: make(map[string]*diagnostics.PeerStatistics), } } @@ -56,24 +64,23 @@ func extractBlobSideCarIndex(topic string) int { //BanPeer(context.Context, *Peer) (*EmptyMessage, error) func (s *SentinelServer) BanPeer(_ context.Context, p *sentinelrpc.Peer) (*sentinelrpc.EmptyMessage, error) { - s.mu.RLock() - defer s.mu.RUnlock() var pid peer.ID if err := pid.UnmarshalText([]byte(p.Pid)); err != nil { return nil, err } - s.sentinel.Peers().WithPeer(pid, func(peer *peers.Peer) { - peer.Ban() - }) + s.sentinel.Peers().SetBanStatus(pid, true) + s.sentinel.Host().Peerstore().RemovePeer(pid) + s.sentinel.Host().Network().ClosePeer(pid) return &sentinelrpc.EmptyMessage{}, nil } func (s *SentinelServer) PublishGossip(_ context.Context, msg *sentinelrpc.GossipData) (*sentinelrpc.EmptyMessage, error) { - s.mu.RLock() - defer s.mu.RUnlock() manager := s.sentinel.GossipManager() // Snappify payload before sending it to gossip compressedData := utils.CompressSnappy(msg.Data) + + s.trackPeerStatistics(msg.GetPeer().Pid, false, msg.Type.String(), "unknown", len(compressedData)) + var subscription *sentinel.GossipSubscription switch msg.Type { @@ -146,61 +153,102 @@ func (s *SentinelServer) withTimeoutCtx(pctx context.Context, dur time.Duration) return ctx, cn } -func (s *SentinelServer) SendRequest(ctx context.Context, req *sentinelrpc.RequestData) (*sentinelrpc.ResponseData, error) { - s.mu.RLock() - defer s.mu.RUnlock() - retryReqInterval := time.NewTicker(100 * time.Millisecond) - defer retryReqInterval.Stop() - doneCh := make(chan *sentinelrpc.ResponseData) - // Try finding the data to our peers - uniquePeers := map[peer.ID]struct{}{} - requestPeer := func(peer *peers.Peer) { - peer.MarkUsed() - defer peer.MarkUnused() - data, isError, err := communication.SendRequestRawToPeer(ctx, s.sentinel.Host(), req.Data, req.Topic, peer.ID()) - if err != nil { - if strings.Contains(err.Error(), "protocols not supported") { - peer.Ban("peer does not support protocol") - } - return - } - if isError > 3 { - peer.Disconnect(fmt.Sprintf("invalid response, starting byte %d", isError)) - } - if isError != 0 { - peer.Penalize() - return - } - ans := &sentinelrpc.ResponseData{ - Data: data, - Error: isError != 0, - Peer: &sentinelrpc.Peer{ - Pid: peer.ID().String(), - }, +func (s *SentinelServer) requestPeer(ctx context.Context, pid peer.ID, req *sentinelrpc.RequestData) (*sentinelrpc.ResponseData, error) { + // prepare the http request + httpReq, err := http.NewRequest("GET", "http://service.internal/", bytes.NewBuffer(req.Data)) + if err != nil { + return nil, err + } + // set the peer and topic we are requesting + httpReq.Header.Set("REQRESP-PEER-ID", pid.String()) + httpReq.Header.Set("REQRESP-TOPIC", req.Topic) + // for now this can't actually error. in the future, it can due to a network error + resp, err := httpreqresp.Do(s.sentinel.ReqRespHandler(), httpReq) + if err != nil { + // we remove, but dont ban the peer if we fail. this is because its probably not their fault, but maybe it is. + return nil, err + } + defer resp.Body.Close() + // some standard http error code parsing + if resp.StatusCode < 200 || resp.StatusCode > 399 { + errBody, _ := io.ReadAll(resp.Body) + errorMessage := fmt.Errorf("SentinelHttp: %s", string(errBody)) + if resp.StatusCode >= 400 && resp.StatusCode < 500 { + s.sentinel.Peers().RemovePeer(pid) + s.sentinel.Host().Peerstore().RemovePeer(pid) + s.sentinel.Host().Network().ClosePeer(pid) } - select { - case doneCh <- ans: - peer.MarkReplied() - retryReqInterval.Stop() - return - case <-ctx.Done(): - return + if resp.StatusCode >= 500 && resp.StatusCode < 600 { + s.sentinel.Host().Peerstore().RemovePeer(pid) + s.sentinel.Host().Network().ClosePeer(pid) } + return nil, errorMessage + } + // we should never get an invalid response to this. our responder should always set it on non-error response + isError, err := strconv.Atoi(resp.Header.Get("REQRESP-RESPONSE-CODE")) + if err != nil { + // TODO: think about how to properly handle this. should we? (or should we just assume no response is success?) + return nil, err + } + // known error codes, just remove the peer + if isError == 3 || isError == 2 { + s.sentinel.Host().Peerstore().RemovePeer(pid) + s.sentinel.Host().Network().ClosePeer(pid) + return nil, fmt.Errorf("peer error code: %d", isError) + } + // unknown error codes + if isError > 3 { + s.logger.Debug("peer returned unknown erro", "id", pid.String()) + s.sentinel.Host().Peerstore().RemovePeer(pid) + s.sentinel.Host().Network().ClosePeer(pid) + return nil, fmt.Errorf("peer returned unknown error: %d", isError) + } + // read the body from the response + data, err := io.ReadAll(resp.Body) + if err != nil { + return nil, err } + ans := &sentinelrpc.ResponseData{ + Data: data, + Error: isError != 0, + Peer: &sentinelrpc.Peer{ + Pid: pid.String(), + }, + } + return ans, nil + +} + +func (s *SentinelServer) SendRequest(ctx context.Context, req *sentinelrpc.RequestData) (*sentinelrpc.ResponseData, error) { + // Try finding the data to our peers + uniquePeers := map[peer.ID]struct{}{} + doneCh := make(chan *sentinelrpc.ResponseData) go func() { - for { - pid, err := s.sentinel.RandomPeer(req.Topic) - if err != nil { - continue - } - if _, ok := uniquePeers[pid]; !ok { - go s.sentinel.Peers().WithPeer(pid, requestPeer) + for i := 0; i < peers.MaxBadResponses; i++ { + // this is using return statements instead of continue, since it saves a few lines + // but me writing this comment has put them back.. oh no!!! anyways, returning true means we stop. + if func() bool { + peer, done, err := s.sentinel.Peers().Request() + if err != nil { + return false + } + defer done() + pid := peer.Id() + _, ok := uniquePeers[pid] + if ok { + return false + } + resp, err := s.requestPeer(ctx, pid, req) + if err != nil { + s.logger.Trace("[sentinel] peer gave us bad data", "peer", pid, "err", err) + // we simply retry + return false + } uniquePeers[pid] = struct{}{} - } - select { - case <-retryReqInterval.C: - case <-ctx.Done(): - return + doneCh <- resp + return true + }() { + break } } }() @@ -217,8 +265,6 @@ func (s *SentinelServer) SendRequest(ctx context.Context, req *sentinelrpc.Reque } func (s *SentinelServer) SetStatus(_ context.Context, req *sentinelrpc.Status) (*sentinelrpc.EmptyMessage, error) { - s.mu.RLock() - defer s.mu.RUnlock() // Send the request and get the data if we get an answer. s.sentinel.SetStatus(&cltypes.Status{ ForkDigest: utils.Uint32ToBytes4(req.ForkDigest), @@ -231,8 +277,6 @@ func (s *SentinelServer) SetStatus(_ context.Context, req *sentinelrpc.Status) ( } func (s *SentinelServer) GetPeers(_ context.Context, _ *sentinelrpc.EmptyMessage) (*sentinelrpc.PeerCount, error) { - s.mu.RLock() - defer s.mu.RUnlock() // Send the request and get the data if we get an answer. return &sentinelrpc.PeerCount{ Amount: uint64(s.sentinel.GetPeersCount()), @@ -258,6 +302,7 @@ func (s *SentinelServer) ListenToGossip() { func (s *SentinelServer) handleGossipPacket(pkt *pubsub.Message) error { var err error s.logger.Trace("[Sentinel Gossip] Received Packet", "topic", pkt.Topic) + data := pkt.GetData() // If we use snappy codec then decompress it accordingly. @@ -271,6 +316,10 @@ func (s *SentinelServer) handleGossipPacket(pkt *pubsub.Message) error { if err != nil { return err } + + msgType, msgCap := parseTopic(pkt.GetTopic()) + s.trackPeerStatistics(string(textPid), true, msgType, msgCap, len(data)) + // Check to which gossip it belongs to. if strings.Contains(*pkt.Topic, string(sentinel.BeaconBlockTopic)) { s.gossipNotifier.notify(sentinelrpc.GossipType_BeaconBlockGossipType, data, string(textPid)) @@ -283,10 +332,60 @@ func (s *SentinelServer) handleGossipPacket(pkt *pubsub.Message) error { } else if strings.Contains(*pkt.Topic, string(sentinel.AttesterSlashingTopic)) { s.gossipNotifier.notify(sentinelrpc.GossipType_AttesterSlashingGossipType, data, string(textPid)) } else if strings.Contains(*pkt.Topic, string(sentinel.BlsToExecutionChangeTopic)) { - s.gossipNotifier.notify(sentinelrpc.GossipType_BlsToExecutionChangeType, data, string(textPid)) + s.gossipNotifier.notify(sentinelrpc.GossipType_BlsToExecutionChangeGossipType, data, string(textPid)) } else if strings.Contains(*pkt.Topic, string(sentinel.BlobSidecarTopic)) { // extract the index s.gossipNotifier.notifyBlob(sentinelrpc.GossipType_BlobSidecarType, data, string(textPid), extractBlobSideCarIndex(*pkt.Topic)) } return nil } + +func (s *SentinelServer) GetPeersStatistics() map[string]*diagnostics.PeerStatistics { + stats := make(map[string]*diagnostics.PeerStatistics) + for k, v := range s.peerStatistics { + stats[k] = v + delete(s.peerStatistics, k) + } + + return stats +} + +func (s *SentinelServer) trackPeerStatistics(peerID string, inbound bool, msgType string, msgCap string, bytes int) { + if s.peerStatistics == nil { + s.peerStatistics = make(map[string]*diagnostics.PeerStatistics) + } + + if _, exists := s.peerStatistics[peerID]; !exists { + s.peerStatistics[peerID] = &diagnostics.PeerStatistics{ + CapBytesIn: make(map[string]uint64), + CapBytesOut: make(map[string]uint64), + TypeBytesIn: make(map[string]uint64), + TypeBytesOut: make(map[string]uint64), + } + } + + stats := s.peerStatistics[peerID] + + if inbound { + stats.BytesIn += uint64(bytes) + stats.CapBytesIn[msgCap] += uint64(bytes) + stats.TypeBytesIn[msgType] += uint64(bytes) + } else { + stats.BytesOut += uint64(bytes) + stats.CapBytesOut[msgCap] += uint64(bytes) + stats.TypeBytesOut[msgType] += uint64(bytes) + } +} + +func parseTopic(input string) (string, string) { + parts := strings.Split(input, "/") + + if len(parts) < 4 { + return "unknown", "unknown" + } + + capability := parts[1] + topick := parts[3] + + return capability, topick +} diff --git a/cmd/sentinel/sentinel/service/start.go b/cl/sentinel/service/start.go similarity index 98% rename from cmd/sentinel/sentinel/service/start.go rename to cl/sentinel/service/start.go index bce041d1141..efcd95ac77a 100644 --- a/cmd/sentinel/sentinel/service/start.go +++ b/cl/sentinel/service/start.go @@ -4,11 +4,12 @@ import ( "context" "net" + "github.com/ledgerwatch/erigon/cl/sentinel" + "github.com/ledgerwatch/erigon-lib/direct" sentinelrpc "github.com/ledgerwatch/erigon-lib/gointerfaces/sentinel" "github.com/ledgerwatch/erigon/cl/cltypes" "github.com/ledgerwatch/erigon/cl/persistence" - "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel" "github.com/ledgerwatch/log/v3" "google.golang.org/grpc" "google.golang.org/grpc/credentials" diff --git a/cmd/sentinel/sentinel/utils.go b/cl/sentinel/utils.go similarity index 59% rename from cmd/sentinel/sentinel/utils.go rename to cl/sentinel/utils.go index 6df55976b20..e3fdd9cd61c 100644 --- a/cmd/sentinel/sentinel/utils.go +++ b/cl/sentinel/utils.go @@ -1,29 +1,24 @@ -/* - Copyright 2022 Erigon-Lightclient contributors - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - +// Copyright 2022 Erigon-Lightclient contributors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// package sentinel package sentinel import ( "crypto/ecdsa" - "crypto/rand" "fmt" - "math/big" "net" - "strings" "time" "github.com/btcsuite/btcd/btcec/v2" - "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel/peers" "github.com/ledgerwatch/erigon/p2p/enode" "github.com/ledgerwatch/log/v3" "github.com/libp2p/go-libp2p/core/crypto" @@ -107,65 +102,6 @@ func convertToMultiAddr(nodes []*enode.Node) []multiaddr.Multiaddr { var shuffleSource = randutil.NewMathRandomGenerator() -// will iterate onto randoms nodes until our sentinel connects to one -func connectToRandomPeer(s *Sentinel, topic string) (peerInfo peer.ID, err error) { - var sub *GossipSubscription - for t, currSub := range s.subManager.subscriptions { - if strings.Contains(t, topic) { - sub = currSub - } - } - - if sub == nil { - return peer.ID(""), fmt.Errorf("no peers") - } - validPeerList := s.Host().Network().Peers() - // blocksSub := s.subManager.GetMatchingSubscription(string(BeaconBlockTopic)) - // if blocksSub != nil { - // validPeerList = blocksSub.topic.ListPeers() - // } - - //validPeerList := sub.topic.ListPeers() - if len(validPeerList) == 0 { - return peer.ID(""), fmt.Errorf("no peers") - } - for i := range validPeerList { - j := shuffleSource.Intn(i + 1) - validPeerList[i], validPeerList[j] = validPeerList[j], validPeerList[i] - } - - connectedPeer := false - maxTries := peers.DefaultMaxPeers - tries := 0 - for !connectedPeer { - if tries >= maxTries { - break - } - tries++ - index := int64(0) - if len(validPeerList) > 1 { - n, err := rand.Int(rand.Reader, big.NewInt(int64(len(validPeerList)-1))) - if err != nil { - panic(err) - } - index = n.Int64() - } - available := false - s.peers.TryPeer(validPeerList[index], func(peer *peers.Peer, ok bool) { - if !ok { - return - } - available = peer.IsAvailable() - }) - if !available { - continue - } - return validPeerList[index], nil - } - - return peer.ID(""), fmt.Errorf("failed to connect to peer") -} - func (s *Sentinel) oneSlotDuration() time.Duration { return time.Duration(s.cfg.BeaconConfig.SecondsPerSlot) * time.Second } diff --git a/cmd/sentinel/sentinel/utils_test.go b/cl/sentinel/utils_test.go similarity index 64% rename from cmd/sentinel/sentinel/utils_test.go rename to cl/sentinel/utils_test.go index 10e60588b64..106fdd9a7a7 100644 --- a/cmd/sentinel/sentinel/utils_test.go +++ b/cl/sentinel/utils_test.go @@ -4,9 +4,6 @@ import ( "encoding/hex" "testing" - "github.com/ledgerwatch/erigon/p2p/enode" - "github.com/ledgerwatch/erigon/p2p/enr" - "github.com/ledgerwatch/erigon/rlp" "github.com/libp2p/go-libp2p/core/peer" ) @@ -63,32 +60,33 @@ func TestMultiAddressBuilderWithID(t *testing.T) { } } -func TestConvertToMultiAddr(t *testing.T) { - var r enr.Record - if err := rlp.DecodeBytes(pyRecord, &r); err != nil { - t.Fatalf("can't decode: %v", err) - } - n, err := enode.New(enode.ValidSchemes, &r) - if err != nil { - t.Fatalf("cannot create new node: %v", err) - } - - testCases := []struct { - nodes []*enode.Node - expected []string - }{ - { - nodes: []*enode.Node{n}, - expected: []string{"/ip4/127.0.0.1/tcp/0/p2p/16Uiu2HAmSH2XVgZqYHWucap5kuPzLnt2TsNQkoppVxB5eJGvaXwm"}, - }, - } - - for _, testCase := range testCases { - multiAddrs := convertToMultiAddr(testCase.nodes) - for i, multiAddr := range multiAddrs { - if multiAddr.String() != testCase.expected[i] { - t.Errorf("for test case: %d, expected: %s, got: %s", i, testCase.expected[i], multiAddr) - } - } - } -} +// TODO: reimplement this test with the new erigon-lib rlp decoder at some point +//func TestConvertToMultiAddr(t *testing.T) { +// var r enr.Record +// if err := rlp.DecodeBytes(pyRecord, &r); err != nil { +// t.Fatalf("can't decode: %v", err) +// } +// n, err := enode.New(enode.ValidSchemes, &r) +// if err != nil { +// t.Fatalf("cannot create new node: %v", err) +// } +// +// testCases := []struct { +// nodes []*enode.Node +// expected []string +// }{ +// { +// nodes: []*enode.Node{n}, +// expected: []string{"/ip4/127.0.0.1/tcp/0/p2p/16Uiu2HAmSH2XVgZqYHWucap5kuPzLnt2TsNQkoppVxB5eJGvaXwm"}, +// }, +// } +// +// for _, testCase := range testCases { +// multiAddrs := convertToMultiAddr(testCase.nodes) +// for i, multiAddr := range multiAddrs { +// if multiAddr.String() != testCase.expected[i] { +// t.Errorf("for test case: %d, expected: %s, got: %s", i, testCase.expected[i], multiAddr) +// } +// } +// } +//} diff --git a/cl/spectest/consensus_tests/bls.go b/cl/spectest/consensus_tests/bls.go index 59a8da3fecc..2c1e6247fee 100644 --- a/cl/spectest/consensus_tests/bls.go +++ b/cl/spectest/consensus_tests/bls.go @@ -1,10 +1,9 @@ package consensus_tests import ( + "github.com/ledgerwatch/erigon/spectest" "io/fs" "testing" - - "github.com/ledgerwatch/erigon/spectest" ) type BlsAggregateVerify struct { diff --git a/cl/spectest/consensus_tests/epoch_processing.go b/cl/spectest/consensus_tests/epoch_processing.go index 72f2c97e30e..390c2ae4289 100644 --- a/cl/spectest/consensus_tests/epoch_processing.go +++ b/cl/spectest/consensus_tests/epoch_processing.go @@ -1,6 +1,7 @@ package consensus_tests import ( + "github.com/ledgerwatch/erigon/spectest" "io/fs" "os" "testing" @@ -9,7 +10,6 @@ import ( "github.com/ledgerwatch/erigon/cl/phase1/core/state" "github.com/ledgerwatch/erigon/cl/transition/impl/eth2/statechange" - "github.com/ledgerwatch/erigon/spectest" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) diff --git a/cl/spectest/consensus_tests/finality.go b/cl/spectest/consensus_tests/finality.go index 1c72fcfb059..a313c8a72ab 100644 --- a/cl/spectest/consensus_tests/finality.go +++ b/cl/spectest/consensus_tests/finality.go @@ -3,10 +3,10 @@ package consensus_tests import ( "fmt" "github.com/ledgerwatch/erigon/cl/transition/machine" + "github.com/ledgerwatch/erigon/spectest" "io/fs" "testing" - "github.com/ledgerwatch/erigon/spectest" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) diff --git a/cl/spectest/consensus_tests/fork_choice.go b/cl/spectest/consensus_tests/fork_choice.go index 0ceaef0baeb..ca39a83c042 100644 --- a/cl/spectest/consensus_tests/fork_choice.go +++ b/cl/spectest/consensus_tests/fork_choice.go @@ -3,6 +3,7 @@ package consensus_tests import ( "context" "fmt" + "github.com/ledgerwatch/erigon/spectest" "io/fs" "testing" @@ -10,11 +11,12 @@ import ( "github.com/ledgerwatch/erigon/cl/clparams" "github.com/ledgerwatch/erigon/cl/cltypes/solid" "github.com/ledgerwatch/erigon/cl/phase1/forkchoice" + "github.com/ledgerwatch/erigon/cl/phase1/forkchoice/fork_graph" "github.com/ledgerwatch/erigon/cl/pool" + "github.com/spf13/afero" "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon/cl/cltypes" - "github.com/ledgerwatch/erigon/spectest" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) @@ -153,7 +155,7 @@ func (b *ForkChoice) Run(t *testing.T, root fs.FS, c spectest.TestCase) (err err anchorState, err := spectest.ReadBeaconState(root, c.Version(), "anchor_state.ssz_snappy") require.NoError(t, err) - forkStore, err := forkchoice.NewForkChoiceStore(context.Background(), anchorState, nil, nil, pool.NewOperationsPool(&clparams.MainnetBeaconConfig), false) + forkStore, err := forkchoice.NewForkChoiceStore(context.Background(), anchorState, nil, nil, pool.NewOperationsPool(&clparams.MainnetBeaconConfig), fork_graph.NewForkGraphDisk(anchorState, afero.NewMemMapFs())) require.NoError(t, err) var steps []ForkChoiceStep diff --git a/cl/spectest/consensus_tests/forks.go b/cl/spectest/consensus_tests/forks.go index 796673f5b3f..39d97f98165 100644 --- a/cl/spectest/consensus_tests/forks.go +++ b/cl/spectest/consensus_tests/forks.go @@ -2,12 +2,12 @@ package consensus_tests import ( "fmt" + "github.com/ledgerwatch/erigon/spectest" "io/fs" "os" "testing" "github.com/ledgerwatch/erigon/cl/clparams" - "github.com/ledgerwatch/erigon/spectest" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) diff --git a/cl/spectest/consensus_tests/operations.go b/cl/spectest/consensus_tests/operations.go index 71fa5157bc9..f2de0d6a784 100644 --- a/cl/spectest/consensus_tests/operations.go +++ b/cl/spectest/consensus_tests/operations.go @@ -2,6 +2,7 @@ package consensus_tests import ( "fmt" + "github.com/ledgerwatch/erigon/spectest" "io/fs" "os" "testing" @@ -10,7 +11,6 @@ import ( "github.com/ledgerwatch/erigon/cl/cltypes/solid" "github.com/ledgerwatch/erigon/cl/cltypes" - "github.com/ledgerwatch/erigon/spectest" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) diff --git a/cl/spectest/consensus_tests/rewards.go b/cl/spectest/consensus_tests/rewards.go index f22f02af4dd..15c3460d813 100644 --- a/cl/spectest/consensus_tests/rewards.go +++ b/cl/spectest/consensus_tests/rewards.go @@ -1,10 +1,9 @@ package consensus_tests import ( + "github.com/ledgerwatch/erigon/spectest" "io/fs" "testing" - - "github.com/ledgerwatch/erigon/spectest" ) type RewardsCore struct { diff --git a/cl/spectest/consensus_tests/sanity.go b/cl/spectest/consensus_tests/sanity.go index 493f3ddcf4e..1b28ab2face 100644 --- a/cl/spectest/consensus_tests/sanity.go +++ b/cl/spectest/consensus_tests/sanity.go @@ -2,12 +2,12 @@ package consensus_tests import ( "github.com/ledgerwatch/erigon/cl/transition/machine" + "github.com/ledgerwatch/erigon/spectest" "io/fs" "os" "testing" "github.com/ledgerwatch/erigon/cl/cltypes" - "github.com/ledgerwatch/erigon/spectest" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) diff --git a/cl/spectest/consensus_tests/shuffling.go b/cl/spectest/consensus_tests/shuffling.go index c26711d3b8c..f8f0898b970 100644 --- a/cl/spectest/consensus_tests/shuffling.go +++ b/cl/spectest/consensus_tests/shuffling.go @@ -1,6 +1,7 @@ package consensus_tests import ( + "github.com/ledgerwatch/erigon/spectest" "io/fs" "testing" @@ -10,7 +11,6 @@ import ( "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon/cl/utils" - "github.com/ledgerwatch/erigon/spectest" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) diff --git a/cl/spectest/consensus_tests/ssz_static.go b/cl/spectest/consensus_tests/ssz_static.go index b736e22564f..b38e71df336 100644 --- a/cl/spectest/consensus_tests/ssz_static.go +++ b/cl/spectest/consensus_tests/ssz_static.go @@ -1,9 +1,15 @@ package consensus_tests import ( + "bytes" "io/fs" "testing" + "github.com/ledgerwatch/erigon/spectest" + + "github.com/ledgerwatch/erigon/cl/clparams" + "github.com/ledgerwatch/erigon/cl/cltypes" + "github.com/ledgerwatch/erigon/cl/persistence/format/snapshot_format" "github.com/ledgerwatch/erigon/cl/phase1/core/state" libcommon "github.com/ledgerwatch/erigon-lib/common" @@ -11,7 +17,6 @@ import ( "github.com/ledgerwatch/erigon-lib/types/ssz" "github.com/ledgerwatch/erigon/cl/utils" - "github.com/ledgerwatch/erigon/spectest" "github.com/stretchr/testify/require" "gopkg.in/yaml.v2" ) @@ -59,6 +64,24 @@ func getSSZStaticConsensusTest[T unmarshalerMarshalerHashable](ref T) spectest.H haveEncoded, err := object.EncodeSSZ(nil) require.NoError(t, err) require.EqualValues(t, haveEncoded, encoded) + // Now let it do the encoding in snapshot format + if blk, ok := object.(*cltypes.SignedBeaconBlock); ok { + var b bytes.Buffer + require.NoError(t, snapshot_format.WriteBlockForSnapshot(blk, &b)) + var br snapshot_format.MockBlockReader + if blk.Version() >= clparams.BellatrixVersion { + br = snapshot_format.MockBlockReader{Block: blk.Block.Body.ExecutionPayload} + + } + + blk2, err := snapshot_format.ReadBlockFromSnapshot(&b, &br, &clparams.MainnetBeaconConfig) + require.NoError(t, err) + + haveRoot, err := blk2.HashSSZ() + require.NoError(t, err) + require.EqualValues(t, expectedRoot, haveRoot) + } + return nil }) } diff --git a/cl/spectest/consensus_tests/transition.go b/cl/spectest/consensus_tests/transition.go index 105ab477fb9..8a6ac6cac78 100644 --- a/cl/spectest/consensus_tests/transition.go +++ b/cl/spectest/consensus_tests/transition.go @@ -3,12 +3,12 @@ package consensus_tests import ( "fmt" "github.com/ledgerwatch/erigon/cl/transition/machine" + "github.com/ledgerwatch/erigon/spectest" "io/fs" "testing" "github.com/ledgerwatch/erigon/cl/clparams" "github.com/ledgerwatch/erigon/cl/cltypes" - "github.com/ledgerwatch/erigon/spectest" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) diff --git a/cl/spectest/tests_test.go b/cl/spectest/tests_test.go index db4fe28c987..a556ae7b03e 100644 --- a/cl/spectest/tests_test.go +++ b/cl/spectest/tests_test.go @@ -4,11 +4,11 @@ import ( "os" "testing" + "github.com/ledgerwatch/erigon/spectest" + "github.com/ledgerwatch/erigon/cl/transition" "github.com/ledgerwatch/erigon/cl/spectest/consensus_tests" - - "github.com/ledgerwatch/erigon/spectest" ) func Test(t *testing.T) { diff --git a/cl/transition/impl/eth2/operations.go b/cl/transition/impl/eth2/operations.go index fa1b2a95171..f063470b57d 100644 --- a/cl/transition/impl/eth2/operations.go +++ b/cl/transition/impl/eth2/operations.go @@ -7,8 +7,8 @@ import ( "reflect" "time" + "github.com/ledgerwatch/erigon-lib/metrics" "github.com/ledgerwatch/erigon/cl/abstract" - "github.com/ledgerwatch/erigon/metrics" "github.com/ledgerwatch/erigon/cl/transition/impl/eth2/statechange" "golang.org/x/exp/slices" @@ -842,7 +842,7 @@ func (I *impl) ProcessSlots(s abstract.BeaconState, slot uint64) error { beaconConfig := s.BeaconConfig() sSlot := s.Slot() if slot <= sSlot { - return fmt.Errorf("new slot: %d not greater than s slot: %d", slot, sSlot) + return fmt.Errorf("new slot: %d not greater than current slot: %d", slot, sSlot) } // Process each slot. for i := sSlot; i < slot; i++ { diff --git a/cl/transition/impl/eth2/statechange/process_sync_committee_update_test.go b/cl/transition/impl/eth2/statechange/process_sync_committee_update_test.go index a7f4b62fe5f..79f646e1c19 100644 --- a/cl/transition/impl/eth2/statechange/process_sync_committee_update_test.go +++ b/cl/transition/impl/eth2/statechange/process_sync_committee_update_test.go @@ -2,13 +2,13 @@ package statechange_test import ( "encoding/binary" + "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon/cl/transition/impl/eth2/statechange" "testing" "github.com/ledgerwatch/erigon/cl/clparams" "github.com/ledgerwatch/erigon/cl/cltypes/solid" "github.com/ledgerwatch/erigon/cl/phase1/core/state" - "github.com/ledgerwatch/erigon/common" "github.com/stretchr/testify/require" ) diff --git a/cl/transition/machine/block.go b/cl/transition/machine/block.go index c98beb32388..1bfaa452a52 100644 --- a/cl/transition/machine/block.go +++ b/cl/transition/machine/block.go @@ -4,8 +4,8 @@ import ( "errors" "fmt" + "github.com/ledgerwatch/erigon-lib/metrics" "github.com/ledgerwatch/erigon/cl/abstract" - "github.com/ledgerwatch/erigon/metrics" "github.com/ledgerwatch/erigon/cl/clparams" "github.com/ledgerwatch/erigon/cl/cltypes" diff --git a/cl/utils/bytes_test.go b/cl/utils/bytes_test.go index d9f15a76124..9b61947b7f7 100644 --- a/cl/utils/bytes_test.go +++ b/cl/utils/bytes_test.go @@ -1,11 +1,11 @@ package utils_test import ( + "github.com/ledgerwatch/erigon-lib/common" "testing" "github.com/ledgerwatch/erigon/cl/cltypes" "github.com/ledgerwatch/erigon/cl/utils" - "github.com/ledgerwatch/erigon/common" "github.com/stretchr/testify/require" ) diff --git a/cmd/capcli/cli.go b/cmd/capcli/cli.go index f7ad42d359f..cfd04bb9426 100644 --- a/cmd/capcli/cli.go +++ b/cmd/capcli/cli.go @@ -2,23 +2,55 @@ package main import ( "context" - "database/sql" "fmt" + "math" "strings" "time" - "github.com/jedib0t/go-pretty/v6/progress" - "github.com/ledgerwatch/erigon-lib/gointerfaces/sentinel" + "github.com/ledgerwatch/erigon/turbo/debug" + + lg "github.com/anacrolix/log" + "github.com/ledgerwatch/erigon-lib/direct" + downloader3 "github.com/ledgerwatch/erigon-lib/downloader" + "github.com/ledgerwatch/erigon-lib/metrics" + state2 "github.com/ledgerwatch/erigon-lib/state" + + "github.com/c2h5oh/datasize" + "github.com/ledgerwatch/erigon-lib/chain/snapcfg" + libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/downloader" + "github.com/ledgerwatch/erigon/cl/abstract" "github.com/ledgerwatch/erigon/cl/clparams" "github.com/ledgerwatch/erigon/cl/cltypes" + persistence2 "github.com/ledgerwatch/erigon/cl/persistence" + "github.com/ledgerwatch/erigon/cmd/caplin/caplin1" + "github.com/ledgerwatch/erigon/eth/ethconfig" + "github.com/ledgerwatch/erigon/params" + "github.com/ledgerwatch/erigon/turbo/snapshotsync" + "github.com/ledgerwatch/erigon/turbo/snapshotsync/freezeblocks" + + "github.com/ledgerwatch/erigon-lib/common/datadir" + "github.com/ledgerwatch/erigon-lib/downloader/downloadercfg" + "github.com/ledgerwatch/erigon-lib/downloader/snaptype" + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon-lib/kv/mdbx" "github.com/ledgerwatch/erigon/cl/persistence" + "github.com/ledgerwatch/erigon/cl/persistence/beacon_indicies" + "github.com/ledgerwatch/erigon/cl/persistence/db_config" + "github.com/ledgerwatch/erigon/cl/persistence/format/snapshot_format" + "github.com/ledgerwatch/erigon/cl/phase1/core" "github.com/ledgerwatch/erigon/cl/phase1/core/state" + "github.com/ledgerwatch/erigon/cl/phase1/network" + "github.com/ledgerwatch/erigon/cl/phase1/stages" "github.com/ledgerwatch/erigon/cl/rpc" "github.com/ledgerwatch/erigon/cl/sentinel/peers" "github.com/ledgerwatch/erigon/cl/transition/impl/eth2" "github.com/ledgerwatch/erigon/cl/transition/machine" "github.com/ledgerwatch/erigon/cl/utils" + + "github.com/jedib0t/go-pretty/v6/progress" + "github.com/ledgerwatch/erigon-lib/gointerfaces/sentinel" "github.com/ledgerwatch/log/v3" "github.com/spf13/afero" "golang.org/x/sync/errgroup" @@ -30,6 +62,12 @@ var CLI struct { Blocks Blocks `cmd:"" help:"download blocks from reqresp network"` Epochs Epochs `cmd:"" help:"download epochs from reqresp network"` + + Chain Chain `cmd:"" help:"download the entire chain from reqresp network"` + DumpSnapshots DumpSnapshots `cmd:"" help:"generate caplin snapshots"` + CheckSnapshots CheckSnapshots `cmd:"" help:"check snapshot folder against content of chain data"` + DownloadSnapshots DownloadSnapshots `cmd:"" help:"download snapshots from webseed"` + LoopSnapshots LoopSnapshots `cmd:"" help:"loop over snapshots"` } type chainCfg struct { @@ -49,8 +87,19 @@ type withSentinel struct { Sentinel string `help:"sentinel url" default:"localhost:7777"` } +type withPPROF struct { + Pprof bool `help:"enable pprof" default:"false"` +} + +func (w *withPPROF) withProfile() { + if w.Pprof { + debug.StartPProf("localhost:6060", metrics.Setup("localhost:6060", log.Root())) + } +} + func (w *withSentinel) connectSentinel() (sentinel.SentinelClient, error) { - gconn, err := grpc.Dial(w.Sentinel, grpc.WithInsecure()) + // YOLO message size + gconn, err := grpc.Dial(w.Sentinel, grpc.WithInsecure(), grpc.WithDefaultCallOptions(grpc.MaxCallRecvMsgSize(math.MaxInt))) if err != nil { return nil, err } @@ -103,20 +152,20 @@ func (b *Blocks) Run(ctx *Context) error { return err } - sqlDB, err := sql.Open("sqlite", "caplin/db") + db := mdbx.MustOpen("caplin/db") if err != nil { return err } - defer sqlDB.Close() + defer db.Close() - tx, err := sqlDB.Begin() + tx, err := db.BeginRw(ctx) if err != nil { return err } defer tx.Rollback() - beaconDB := persistence.NewBeaconChainDatabaseFilesystem(persistence.NewAferoRawBlockSaver(aferoFS, beaconConfig), nil, beaconConfig) + beaconDB := persistence2.NewBeaconChainDatabaseFilesystem(persistence2.NewAferoRawBlockSaver(aferoFS, beaconConfig), nil, beaconConfig) for _, vv := range resp { - err := beaconDB.WriteBlock(tx, ctx, vv, true) + err := beaconDB.WriteBlock(ctx, tx, vv, true) if err != nil { return err } @@ -150,15 +199,11 @@ func (b *Epochs) Run(cctx *Context) error { if err != nil { return err } - sqlDB, err := sql.Open("sqlite", "caplin/db") - if err != nil { - return err - } - defer sqlDB.Close() + beaconDB := persistence.NewBeaconChainDatabaseFilesystem(persistence.NewAferoRawBlockSaver(aferoFS, beaconConfig), nil, beaconConfig) beacon := rpc.NewBeaconRpcP2P(ctx, s, beaconConfig, genesisConfig) - rpcSource := persistence.NewBeaconRpcSource(beacon) + rpcSource := persistence2.NewBeaconRpcSource(beacon) err = beacon.SetStatus( genesisConfig.GenesisValidatorRoot, @@ -207,7 +252,13 @@ func (b *Epochs) Run(cctx *Context) error { egg.SetLimit(b.Concurrency) - tx, err := sqlDB.Begin() + db := mdbx.MustOpen("caplin/db") + if err != nil { + return err + } + defer db.Close() + + tx, err := db.BeginRw(ctx) if err != nil { return err } @@ -216,19 +267,19 @@ func (b *Epochs) Run(cctx *Context) error { for i := b.FromEpoch; i <= b.ToEpoch; i = i + 1 { ii := i egg.Go(func() error { - var blocks []*peers.PeeredObject[*cltypes.SignedBeaconBlock] + var blocks *peers.PeeredObject[[]*cltypes.SignedBeaconBlock] for { - blocks, err = rpcSource.GetRange(tx, ctx, uint64(ii)*beaconConfig.SlotsPerEpoch, beaconConfig.SlotsPerEpoch) + blocks, err = rpcSource.GetRange(ctx, tx, uint64(ii)*beaconConfig.SlotsPerEpoch, beaconConfig.SlotsPerEpoch) if err != nil { log.Error("dl error", "err", err, "epoch", ii) } else { break } } - for _, v := range blocks { + for _, v := range blocks.Data { tk.Increment(1) _, _ = beaconDB, v - err := beaconDB.WriteBlock(tx, ctx, v.Data, true) + err := beaconDB.WriteBlock(ctx, tx, v, true) if err != nil { return err } @@ -316,3 +367,291 @@ func (m *Migrate) Run(ctx *Context) error { } return nil } + +type Chain struct { + chainCfg + withSentinel + outputFolder +} + +func (c *Chain) Run(ctx *Context) error { + s, err := c.withSentinel.connectSentinel() + if err != nil { + return err + } + + genesisConfig, _, beaconConfig, networkType, err := clparams.GetConfigsByNetworkName(c.Chain) + if err != nil { + return err + } + log.Root().SetHandler(log.LvlFilterHandler(log.LvlInfo, log.StderrHandler)) + log.Info("Started chain download", "chain", c.Chain) + + dirs := datadir.New(c.Datadir) + + rawDB := persistence.AferoRawBeaconBlockChainFromOsPath(beaconConfig, dirs.CaplinHistory) + beaconDB, db, err := caplin1.OpenCaplinDatabase(ctx, db_config.DatabaseConfiguration{PruneDepth: math.MaxUint64}, beaconConfig, rawDB, dirs.CaplinIndexing, nil, false) + if err != nil { + return err + } + defer db.Close() + + beacon := rpc.NewBeaconRpcP2P(ctx, s, beaconConfig, genesisConfig) + + bs, err := core.RetrieveBeaconState(ctx, beaconConfig, genesisConfig, clparams.GetCheckpointSyncEndpoint(networkType)) + if err != nil { + return err + } + + bRoot, err := bs.BlockRoot() + if err != nil { + return err + } + + if err := db.Update(ctx, func(tx kv.RwTx) error { + return beacon_indicies.WriteHighestFinalized(tx, bs.Slot()) + }); err != nil { + return err + } + + err = beacon.SetStatus( + genesisConfig.GenesisValidatorRoot, + beaconConfig.GenesisEpoch, + genesisConfig.GenesisValidatorRoot, + beaconConfig.GenesisSlot) + if err != nil { + return err + } + downloader := network.NewBackwardBeaconDownloader(ctx, beacon) + cfg := stages.StageHistoryReconstruction(downloader, beaconDB, db, nil, genesisConfig, beaconConfig, db_config.DatabaseConfiguration{ + PruneDepth: math.MaxUint64, + }, bRoot, bs.Slot(), "/tmp", log.Root()) + return stages.SpawnStageHistoryDownload(cfg, ctx, log.Root()) +} + +type DumpSnapshots struct { + chainCfg + outputFolder +} + +func (c *DumpSnapshots) Run(ctx *Context) error { + _, _, beaconConfig, _, err := clparams.GetConfigsByNetworkName(c.Chain) + if err != nil { + return err + } + log.Root().SetHandler(log.LvlFilterHandler(log.LvlDebug, log.StderrHandler)) + log.Info("Started chain download", "chain", c.Chain) + + dirs := datadir.New(c.Datadir) + log.Root().SetHandler(log.LvlFilterHandler(log.LvlInfo, log.StderrHandler)) + + rawDB := persistence.AferoRawBeaconBlockChainFromOsPath(beaconConfig, dirs.CaplinHistory) + beaconDB, db, err := caplin1.OpenCaplinDatabase(ctx, db_config.DatabaseConfiguration{PruneDepth: math.MaxUint64}, beaconConfig, rawDB, dirs.CaplinIndexing, nil, false) + if err != nil { + return err + } + var to uint64 + db.View(ctx, func(tx kv.Tx) (err error) { + to, err = beacon_indicies.ReadHighestFinalized(tx) + return + }) + + return freezeblocks.DumpBeaconBlocks(ctx, db, beaconDB, 0, to, snaptype.Erigon2MergeLimit, dirs.Tmp, dirs.Snap, 8, log.LvlInfo, log.Root()) +} + +type CheckSnapshots struct { + chainCfg + outputFolder + withPPROF + + Slot uint64 `name:"slot" help:"slot to check"` +} + +func (c *CheckSnapshots) Run(ctx *Context) error { + _, _, beaconConfig, _, err := clparams.GetConfigsByNetworkName(c.Chain) + if err != nil { + return err + } + c.withProfile() + log.Root().SetHandler(log.LvlFilterHandler(log.LvlDebug, log.StderrHandler)) + log.Info("Started the checking process", "chain", c.Chain) + dirs := datadir.New(c.Datadir) + log.Root().SetHandler(log.LvlFilterHandler(log.LvlInfo, log.StderrHandler)) + + rawDB := persistence.AferoRawBeaconBlockChainFromOsPath(beaconConfig, dirs.CaplinHistory) + beaconDB, db, err := caplin1.OpenCaplinDatabase(ctx, db_config.DatabaseConfiguration{PruneDepth: math.MaxUint64}, beaconConfig, rawDB, dirs.CaplinIndexing, nil, false) + if err != nil { + return err + } + var to uint64 + tx, err := db.BeginRo(ctx) + if err != nil { + return err + } + defer tx.Rollback() + + to, err = beacon_indicies.ReadHighestFinalized(tx) + if err != nil { + return err + } + + to = (to / snaptype.Erigon2MergeLimit) * snaptype.Erigon2MergeLimit + + csn := freezeblocks.NewCaplinSnapshots(ethconfig.BlocksFreezing{}, dirs.Snap, log.Root()) + if err := csn.ReopenFolder(); err != nil { + return err + } + + br := &snapshot_format.MockBlockReader{} + snReader := freezeblocks.NewBeaconSnapshotReader(csn, br, beaconConfig) + for i := c.Slot; i < to; i++ { + // Read the original canonical slot + data, err := beaconDB.GetBlock(ctx, tx, i) + if err != nil { + return err + } + if data == nil { + continue + } + blk := data.Data + if blk == nil { + continue + } + // first thing if the block is bellatrix update the mock block reader + if blk.Version() >= clparams.BellatrixVersion { + br.Block = blk.Block.Body.ExecutionPayload + } + blk2, err := snReader.ReadBlock(i) + if err != nil { + log.Error("Error detected in decoding snapshots", "err", err, "slot", i) + return nil + } + if blk2 == nil { + log.Error("Block not found in snapshot", "slot", i) + return nil + } + + hash1, _ := blk.Block.HashSSZ() + hash2, _ := blk2.Block.HashSSZ() + if hash1 != hash2 { + log.Error("Mismatching blocks", "slot", i, "gotSlot", blk2.Block.Slot, "datadir", libcommon.Hash(hash1), "snapshot", libcommon.Hash(hash2)) + return nil + } + log.Info("Successfully checked", "slot", i) + } + return nil +} + +type LoopSnapshots struct { + chainCfg + outputFolder + withPPROF + + Slot uint64 `name:"slot" help:"slot to check"` +} + +func (c *LoopSnapshots) Run(ctx *Context) error { + c.withProfile() + + _, _, beaconConfig, _, err := clparams.GetConfigsByNetworkName(c.Chain) + if err != nil { + return err + } + log.Root().SetHandler(log.LvlFilterHandler(log.LvlDebug, log.StderrHandler)) + log.Info("Started the checking process", "chain", c.Chain) + + dirs := datadir.New(c.Datadir) + log.Root().SetHandler(log.LvlFilterHandler(log.LvlInfo, log.StderrHandler)) + + rawDB := persistence.AferoRawBeaconBlockChainFromOsPath(beaconConfig, dirs.CaplinHistory) + _, db, err := caplin1.OpenCaplinDatabase(ctx, db_config.DatabaseConfiguration{PruneDepth: math.MaxUint64}, beaconConfig, rawDB, dirs.CaplinIndexing, nil, false) + if err != nil { + return err + } + var to uint64 + tx, err := db.BeginRo(ctx) + if err != nil { + return err + } + defer tx.Rollback() + + to, err = beacon_indicies.ReadHighestFinalized(tx) + if err != nil { + return err + } + + to = (to / snaptype.Erigon2MergeLimit) * snaptype.Erigon2MergeLimit + + csn := freezeblocks.NewCaplinSnapshots(ethconfig.BlocksFreezing{}, dirs.Snap, log.Root()) + if err := csn.ReopenFolder(); err != nil { + return err + } + + br := &snapshot_format.MockBlockReader{} + snReader := freezeblocks.NewBeaconSnapshotReader(csn, br, beaconConfig) + start := time.Now() + for i := c.Slot; i < to; i++ { + snReader.ReadBlock(i) + } + log.Info("Successfully checked", "slot", c.Slot, "time", time.Since(start)) + return nil +} + +type DownloadSnapshots struct { + chainCfg + outputFolder +} + +func (d *DownloadSnapshots) Run(ctx *Context) error { + webSeeds := snapcfg.KnownWebseeds[d.Chain] + dirs := datadir.New(d.Datadir) + + _, _, beaconConfig, _, err := clparams.GetConfigsByNetworkName(d.Chain) + if err != nil { + return err + } + + rawDB := persistence.AferoRawBeaconBlockChainFromOsPath(beaconConfig, dirs.CaplinHistory) + + log.Root().SetHandler(log.LvlFilterHandler(log.LvlDebug, log.StderrHandler)) + + _, db, err := caplin1.OpenCaplinDatabase(ctx, db_config.DatabaseConfiguration{PruneDepth: math.MaxUint64}, beaconConfig, rawDB, dirs.CaplinIndexing, nil, false) + if err != nil { + return err + } + tx, err := db.BeginRw(ctx) + if err != nil { + return err + } + defer tx.Rollback() + downloadRate, err := datasize.ParseString("16mb") + if err != nil { + return err + } + + uploadRate, err := datasize.ParseString("0mb") + if err != nil { + return err + } + version := "erigon: " + params.VersionWithCommit(params.GitCommit) + + downloaderCfg, err := downloadercfg.New(dirs, version, lg.Info, downloadRate, uploadRate, 42069, 10, 3, nil, webSeeds, d.Chain) + if err != nil { + return err + } + downloaderCfg.DownloadTorrentFilesFromWebseed = true + downlo, err := downloader.New(ctx, downloaderCfg, dirs, log.Root(), log.LvlInfo) + if err != nil { + return err + } + s, err := state2.NewAggregatorV3(ctx, dirs.Tmp, dirs.Tmp, 200000, db, log.Root()) + if err != nil { + return err + } + downlo.MainLoopInBackground(false) + bittorrentServer, err := downloader3.NewGrpcServer(downlo) + if err != nil { + return fmt.Errorf("new server: %w", err) + } + return snapshotsync.WaitForDownloader("CapCliDownloader", ctx, false, snapshotsync.OnlyCaplin, s, tx, freezeblocks.NewBlockReader(freezeblocks.NewRoSnapshots(ethconfig.NewSnapCfg(false, false, false), dirs.Snap, log.Root()), freezeblocks.NewBorRoSnapshots(ethconfig.NewSnapCfg(false, false, false), dirs.Snap, log.Root())), nil, params.ChainConfigByChainName(d.Chain), direct.NewDownloaderClient(bittorrentServer)) +} diff --git a/cmd/caplin-regression/main.go b/cmd/caplin-regression/main.go index 390ad2268ba..c9a6d7a9343 100644 --- a/cmd/caplin-regression/main.go +++ b/cmd/caplin-regression/main.go @@ -2,12 +2,12 @@ package main import ( "flag" + "github.com/ledgerwatch/erigon-lib/metrics" + "github.com/ledgerwatch/erigon/cl/cltypes" + "github.com/ledgerwatch/erigon/cl/phase1/forkchoice" - "github.com/ledgerwatch/erigon/metrics" "github.com/ledgerwatch/erigon/turbo/debug" - "github.com/ledgerwatch/erigon/cl/cltypes" - "github.com/ledgerwatch/erigon/cl/phase1/forkchoice" "github.com/ledgerwatch/erigon/cmd/caplin-regression/regression" "github.com/ledgerwatch/log/v3" "golang.org/x/exp/slices" diff --git a/cmd/caplin-regression/regression/reader.go b/cmd/caplin-regression/regression/reader.go index 723a82aea38..25de1965157 100644 --- a/cmd/caplin-regression/regression/reader.go +++ b/cmd/caplin-regression/regression/reader.go @@ -1,16 +1,15 @@ package regression import ( + clparams2 "github.com/ledgerwatch/erigon/cl/clparams" + "github.com/ledgerwatch/erigon/cl/cltypes" + "github.com/ledgerwatch/erigon/cl/phase1/core/state" + "github.com/ledgerwatch/erigon/cl/utils" "io/fs" "io/ioutil" "path" "path/filepath" "sort" - - "github.com/ledgerwatch/erigon/cl/clparams" - "github.com/ledgerwatch/erigon/cl/cltypes" - "github.com/ledgerwatch/erigon/cl/phase1/core/state" - "github.com/ledgerwatch/erigon/cl/utils" ) func (r *RegressionTester) readStartingState() (*state.CachingBeaconState, error) { @@ -18,8 +17,8 @@ func (r *RegressionTester) readStartingState() (*state.CachingBeaconState, error if err != nil { return nil, err } - s := state.New(&clparams.MainnetBeaconConfig) - if err := utils.DecodeSSZSnappy(s, stateFile, int(clparams.CapellaVersion)); err != nil { + s := state.New(&clparams2.MainnetBeaconConfig) + if err := utils.DecodeSSZSnappy(s, stateFile, int(clparams2.CapellaVersion)); err != nil { return nil, err } return s, nil @@ -39,7 +38,7 @@ func (r *RegressionTester) initBlocks() error { return err } b := new(cltypes.SignedBeaconBlock) - if err := utils.DecodeSSZSnappy(b, f, int(clparams.CapellaVersion)); err != nil { + if err := utils.DecodeSSZSnappy(b, f, int(clparams2.CapellaVersion)); err != nil { return err } r.blockList = append(r.blockList, b) diff --git a/cmd/caplin-regression/regression/tester.go b/cmd/caplin-regression/regression/tester.go index ace5ba977eb..badaebe5413 100644 --- a/cmd/caplin-regression/regression/tester.go +++ b/cmd/caplin-regression/regression/tester.go @@ -5,15 +5,18 @@ import ( "runtime" "time" - "github.com/Giulio2002/bls" - "github.com/ledgerwatch/erigon-lib/common" - "github.com/ledgerwatch/erigon-lib/common/dbg" "github.com/ledgerwatch/erigon/cl/clparams" "github.com/ledgerwatch/erigon/cl/cltypes" - "github.com/ledgerwatch/erigon/cl/cltypes/solid" + solid2 "github.com/ledgerwatch/erigon/cl/cltypes/solid" "github.com/ledgerwatch/erigon/cl/phase1/forkchoice" "github.com/ledgerwatch/erigon/cl/pool" + + "github.com/Giulio2002/bls" + "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/common/dbg" + "github.com/ledgerwatch/erigon/cl/phase1/forkchoice/fork_graph" "github.com/ledgerwatch/log/v3" + "github.com/spf13/afero" ) const ( @@ -41,13 +44,13 @@ func (r *RegressionTester) Run(name string, fn func(*forkchoice.ForkChoiceStore, if err != nil { return err } - store, err := forkchoice.NewForkChoiceStore(context.Background(), state, nil, nil, pool.NewOperationsPool(&clparams.MainnetBeaconConfig), true) + store, err := forkchoice.NewForkChoiceStore(context.Background(), state, nil, nil, pool.NewOperationsPool(&clparams.MainnetBeaconConfig), fork_graph.NewForkGraphDisk(state, afero.NewMemMapFs())) if err != nil { return err } log.Info("Loading public keys into memory") bls.SetEnabledCaching(true) - state.ForEachValidator(func(v solid.Validator, idx, total int) bool { + state.ForEachValidator(func(v solid2.Validator, idx, total int) bool { pk := v.PublicKey() if err := bls.LoadPublicKeyIntoCache(pk[:], false); err != nil { panic(err) @@ -84,7 +87,7 @@ func TestRegressionWithValidation(store *forkchoice.ForkChoiceStore, block *clty if err := store.OnBlock(block, false, true); err != nil { return err } - block.Block.Body.Attestations.Range(func(index int, value *solid.Attestation, length int) bool { + block.Block.Body.Attestations.Range(func(index int, value *solid2.Attestation, length int) bool { store.OnAttestation(value, true) return true }) diff --git a/cmd/caplin-phase1/caplin1/run.go b/cmd/caplin/caplin1/run.go similarity index 77% rename from cmd/caplin-phase1/caplin1/run.go rename to cmd/caplin/caplin1/run.go index 6585a6a9399..6c37b0b5510 100644 --- a/cmd/caplin-phase1/caplin1/run.go +++ b/cmd/caplin/caplin1/run.go @@ -2,7 +2,6 @@ package caplin1 import ( "context" - "database/sql" "os" "path" "time" @@ -11,49 +10,52 @@ import ( "github.com/ledgerwatch/erigon/cl/beacon/handler" "github.com/ledgerwatch/erigon/cl/cltypes/solid" "github.com/ledgerwatch/erigon/cl/freezer" + freezer2 "github.com/ledgerwatch/erigon/cl/freezer" "github.com/ledgerwatch/erigon/cl/persistence" + persistence2 "github.com/ledgerwatch/erigon/cl/persistence" "github.com/ledgerwatch/erigon/cl/persistence/db_config" - "github.com/ledgerwatch/erigon/cl/persistence/sql_migrations" "github.com/ledgerwatch/erigon/cl/phase1/core/state" "github.com/ledgerwatch/erigon/cl/phase1/execution_client" "github.com/ledgerwatch/erigon/cl/phase1/forkchoice" + "github.com/ledgerwatch/erigon/cl/phase1/forkchoice/fork_graph" "github.com/ledgerwatch/erigon/cl/phase1/network" "github.com/ledgerwatch/erigon/cl/phase1/stages" "github.com/ledgerwatch/erigon/cl/pool" + "github.com/ledgerwatch/erigon/cl/rpc" + "github.com/spf13/afero" "github.com/Giulio2002/bls" "github.com/ledgerwatch/erigon-lib/common/datadir" "github.com/ledgerwatch/erigon-lib/gointerfaces/sentinel" + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon-lib/kv/mdbx" "github.com/ledgerwatch/erigon/cl/clparams" - "github.com/ledgerwatch/erigon/cl/rpc" "github.com/ledgerwatch/log/v3" ) func OpenCaplinDatabase(ctx context.Context, databaseConfig db_config.DatabaseConfiguration, beaconConfig *clparams.BeaconChainConfig, - rawBeaconChain persistence.RawBeaconBlockChain, + rawBeaconChain persistence2.RawBeaconBlockChain, dbPath string, engine execution_client.ExecutionEngine, -) (persistence.BeaconChainDatabase, *sql.DB, error) { + wipeout bool, +) (persistence.BeaconChainDatabase, kv.RwDB, error) { dataDirIndexer := path.Join(dbPath, "beacon_indicies") - os.Remove(dataDirIndexer) + if wipeout { + os.RemoveAll(dataDirIndexer) + } + os.MkdirAll(dbPath, 0700) - db, err := sql.Open("sqlite", dataDirIndexer) - if err != nil { - return nil, nil, err - } + db := mdbx.MustOpen(dataDirIndexer) - tx, err := db.BeginTx(ctx, &sql.TxOptions{ReadOnly: false}) + tx, err := db.BeginRw(ctx) if err != nil { return nil, nil, err } defer tx.Rollback() - if err := sql_migrations.ApplyMigrations(ctx, tx); err != nil { - return nil, nil, err - } if err := db_config.WriteConfigurationIfNotExist(ctx, tx, databaseConfig); err != nil { return nil, nil, err } @@ -67,15 +69,14 @@ func OpenCaplinDatabase(ctx context.Context, db.Close() // close sql database here }() } - return persistence.NewBeaconChainDatabaseFilesystem(rawBeaconChain, engine, beaconConfig), db, nil + return persistence2.NewBeaconChainDatabaseFilesystem(rawBeaconChain, engine, beaconConfig), db, nil } func RunCaplinPhase1(ctx context.Context, sentinel sentinel.SentinelClient, engine execution_client.ExecutionEngine, beaconConfig *clparams.BeaconChainConfig, genesisConfig *clparams.GenesisConfig, state *state.CachingBeaconState, caplinFreezer freezer.Freezer, dirs datadir.Dirs, cfg beacon.RouterConfiguration) error { - caplinDBPath := path.Join(dirs.CaplinIndexing, "db") - rawDB := persistence.AferoRawBeaconBlockChainFromOsPath(beaconConfig, caplinDBPath) - beaconDB, sqlDB, err := OpenCaplinDatabase(ctx, db_config.DefaultDatabaseConfiguration, beaconConfig, rawDB, dirs.CaplinHistory, engine) + rawDB := persistence.AferoRawBeaconBlockChainFromOsPath(beaconConfig, dirs.CaplinHistory) + beaconDB, sqlDB, err := OpenCaplinDatabase(ctx, db_config.DefaultDatabaseConfiguration, beaconConfig, rawDB, dirs.CaplinIndexing, engine, true) if err != nil { return err } @@ -87,13 +88,21 @@ func RunCaplinPhase1(ctx context.Context, sentinel sentinel.SentinelClient, engi logger := log.New("app", "caplin") if caplinFreezer != nil { - if err := freezer.PutObjectSSZIntoFreezer("beaconState", "caplin_core", 0, state, caplinFreezer); err != nil { + if err := freezer2.PutObjectSSZIntoFreezer("beaconState", "caplin_core", 0, state, caplinFreezer); err != nil { return err } } pool := pool.NewOperationsPool(beaconConfig) - forkChoice, err := forkchoice.NewForkChoiceStore(ctx, state, engine, caplinFreezer, pool, true) + caplinFcuPath := path.Join(dirs.Tmp, "caplin-forkchoice") + os.RemoveAll(caplinFcuPath) + err = os.MkdirAll(caplinFcuPath, 0o755) + if err != nil { + return err + } + fcuFs := afero.NewBasePathFs(afero.NewOsFs(), caplinFcuPath) + + forkChoice, err := forkchoice.NewForkChoiceStore(ctx, state, engine, caplinFreezer, pool, fork_graph.NewForkGraphDisk(state, fcuFs)) if err != nil { logger.Error("Could not create forkchoice", "err", err) return err @@ -107,10 +116,9 @@ func RunCaplinPhase1(ctx context.Context, sentinel sentinel.SentinelClient, engi return true }) gossipManager := network.NewGossipReceiver(sentinel, forkChoice, beaconConfig, genesisConfig, caplinFreezer) - { // start ticking forkChoice go func() { - tickInterval := time.NewTicker(2 * time.Millisecond) + tickInterval := time.NewTicker(50 * time.Millisecond) for { select { case <-tickInterval.C: @@ -150,7 +158,7 @@ func RunCaplinPhase1(ctx context.Context, sentinel sentinel.SentinelClient, engi }() } - tx, err := sqlDB.BeginTx(ctx, &sql.TxOptions{ReadOnly: true}) + tx, err := sqlDB.BeginRo(ctx) if err != nil { return err } diff --git a/cmd/caplin-phase1/main.go b/cmd/caplin/main.go similarity index 85% rename from cmd/caplin-phase1/main.go rename to cmd/caplin/main.go index 74f2fc76012..4988502b1f3 100644 --- a/cmd/caplin-phase1/main.go +++ b/cmd/caplin/main.go @@ -19,27 +19,27 @@ import ( "os" "github.com/ledgerwatch/erigon/cl/beacon" - "github.com/ledgerwatch/erigon/cl/freezer" + "github.com/ledgerwatch/erigon/cl/cltypes" + "github.com/ledgerwatch/erigon/cl/fork" + freezer2 "github.com/ledgerwatch/erigon/cl/freezer" "github.com/ledgerwatch/erigon/cl/phase1/core" "github.com/ledgerwatch/erigon/cl/phase1/core/state" - "github.com/ledgerwatch/erigon/cl/phase1/execution_client" + execution_client2 "github.com/ledgerwatch/erigon/cl/phase1/execution_client" + "github.com/ledgerwatch/erigon/cl/sentinel" + "github.com/ledgerwatch/erigon/cl/sentinel/service" "github.com/ledgerwatch/log/v3" "github.com/urfave/cli/v2" - "github.com/ledgerwatch/erigon/cl/cltypes" - "github.com/ledgerwatch/erigon/cl/fork" - "github.com/ledgerwatch/erigon/cmd/caplin-phase1/caplin1" + "github.com/ledgerwatch/erigon/cmd/caplin/caplin1" lcCli "github.com/ledgerwatch/erigon/cmd/sentinel/cli" "github.com/ledgerwatch/erigon/cmd/sentinel/cli/flags" - "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel" - "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel/service" - lightclientapp "github.com/ledgerwatch/erigon/turbo/app" + app "github.com/ledgerwatch/erigon/turbo/app" "github.com/ledgerwatch/erigon/turbo/debug" ) func main() { - app := lightclientapp.MakeApp("caplin-phase1", runCaplinNode, flags.CLDefaultFlags) + app := app.MakeApp("caplin", runCaplinNode, flags.CLDefaultFlags) if err := app.Run(os.Args); err != nil { _, printErr := fmt.Fprintln(os.Stderr, err) if printErr != nil { @@ -104,9 +104,9 @@ func runCaplinNode(cliCtx *cli.Context) error { log.Error("[Checkpoint Sync] Failed", "reason", err) return err } - var executionEngine execution_client.ExecutionEngine + var executionEngine execution_client2.ExecutionEngine if cfg.RunEngineAPI { - cc, err := execution_client.NewExecutionClientRPC(ctx, cfg.JwtSecret, cfg.EngineAPIAddr, cfg.EngineAPIPort) + cc, err := execution_client2.NewExecutionClientRPC(ctx, cfg.JwtSecret, cfg.EngineAPIAddr, cfg.EngineAPIPort) if err != nil { log.Error("could not start engine api", "err", err) } @@ -114,9 +114,9 @@ func runCaplinNode(cliCtx *cli.Context) error { executionEngine = cc } - var caplinFreezer freezer.Freezer + var caplinFreezer freezer2.Freezer if cfg.RecordMode { - caplinFreezer = &freezer.RootPathOsFs{ + caplinFreezer = &freezer2.RootPathOsFs{ Root: cfg.RecordDir, } } diff --git a/cmd/devnet/README.md b/cmd/devnet/README.md index 74ddc735e4a..cd281a53a99 100644 --- a/cmd/devnet/README.md +++ b/cmd/devnet/README.md @@ -9,7 +9,7 @@ The devnet code performs 3 main functions: * It allows for the specification of a series of scenarios which will be run against the nodes on that internal network * It can optionally run a `support` connection which allows the nodes on the network to be connected to the Erigon diagnostic system -The specification of both nodes and scenarios for the devenet is done by specifying configuraion objects. These objects are currently build in code using go `structs` but are cabable of being read as configuration. +The specification of both nodes and scenarios for the devenet is done by specifying configuration objects. These objects are currently build in code using go `structs` but are capable of being read as configuration. ## Devnet runtime start-up @@ -28,7 +28,7 @@ The devnet runs as a single `go` process which can be started with the following ## Network Configuration -Networks configurations are currently specified in code in `main.go` in the `selectNetwork` function. This contains a series of `structs` with the following structue, for eample: +Networks configurations are currently specified in code in `main.go` in the `selectNetwork` function. This contains a series of `structs` with the following structure, for example: ```go return &devnet.Network{ @@ -55,11 +55,11 @@ Networks configurations are currently specified in code in `main.go` in the `sel }, nil ``` -Base IP's and addresses are iterated for each node in the network - to ensure that when the network starts there are no port clashes as the entire nework operates in a single process, hence shares a common host. Individual nodes will be configured with a default set of command line arguments dependent on type. To see the default arguments per node look at the `args\node.go` file where these are specified as tags on the struct members. +Base IP's and addresses are iterated for each node in the network - to ensure that when the network starts there are no port clashes as the entire network operates in a single process, hence shares a common host. Individual nodes will be configured with a default set of command line arguments dependent on type. To see the default arguments per node look at the `args\node.go` file where these are specified as tags on the struct members. ## Scenario Configuration -Scenarios are similarly specified in code in `main.go` in the `action` function. This is the initial configration: +Scenarios are similarly specified in code in `main.go` in the `action` function. This is the initial configuration: ```go scenarios.Scenario{ @@ -74,9 +74,9 @@ Scenarios are similarly specified in code in `main.go` in the `action` function. }) ``` -Scenarios are created a groups of steps which are created by regestering a `step` handler too see an example of this take a look at the `commands\ping.go` file which adds a ping rpc method (see `PingErigonRpc` above). +Scenarios are created a groups of steps which are created by registering a `step` handler too see an example of this take a look at the `commands\ping.go` file which adds a ping rpc method (see `PingErigonRpc` above). -This illustrates the registratio process. The `init` function in the file registers the method with the `scenarios` package - which uses the function name as the default step name. Others can be added with additional string arguments fo the `StepHandler` call where they will treated as regular expressions to be matched when processing scenario steps. +This illustrates the registration process. The `init` function in the file registers the method with the `scenarios` package - which uses the function name as the default step name. Others can be added with additional string arguments fo the `StepHandler` call where they will treated as regular expressions to be matched when processing scenario steps. ```go func init() { diff --git a/cmd/devnet/accounts/accounts.go b/cmd/devnet/accounts/accounts.go index 032cebdc616..097ca74daf5 100644 --- a/cmd/devnet/accounts/accounts.go +++ b/cmd/devnet/accounts/accounts.go @@ -20,6 +20,14 @@ func init() { core.DevnetSignKey = func(addr libcommon.Address) *ecdsa.PrivateKey { return SigKey(addr) } + + devnetEtherbaseAccount := &Account{ + "DevnetEtherbase", + core.DevnetEtherbase, + core.DevnetSignPrivateKey, + } + accountsByAddress[core.DevnetEtherbase] = devnetEtherbaseAccount + accountsByName[devnetEtherbaseAccount.Name] = devnetEtherbaseAccount } var accountsByAddress = map[libcommon.Address]*Account{} diff --git a/cmd/devnet/args/node.go b/cmd/devnet/args/node_args.go similarity index 75% rename from cmd/devnet/args/node.go rename to cmd/devnet/args/node_args.go index e3e348e5226..9684d11c899 100644 --- a/cmd/devnet/args/node.go +++ b/cmd/devnet/args/node_args.go @@ -1,18 +1,24 @@ package args import ( + "crypto/ecdsa" + "encoding/hex" "fmt" + "github.com/ledgerwatch/erigon/core" + "github.com/ledgerwatch/erigon/crypto" + "github.com/ledgerwatch/erigon/p2p/enode" + "github.com/ledgerwatch/erigon/params" "math/big" "net" "path/filepath" "strconv" + "github.com/ledgerwatch/erigon-lib/chain/networkname" "github.com/ledgerwatch/erigon/cmd/devnet/accounts" "github.com/ledgerwatch/erigon/cmd/devnet/requests" - "github.com/ledgerwatch/erigon/params/networkname" ) -type Node struct { +type NodeArgs struct { requests.RequestGenerator `arg:"-"` Name string `arg:"-"` BuildDir string `arg:"positional" default:"./build/bin/devnet" json:"builddir"` @@ -44,11 +50,14 @@ type Node struct { StaticPeers string `arg:"--staticpeers" json:"staticpeers,omitempty"` WithoutHeimdall bool `arg:"--bor.withoutheimdall" flag:"" default:"false" json:"bor.withoutheimdall,omitempty"` HeimdallGRpc string `arg:"--bor.heimdallgRPC" json:"bor.heimdallgRPC,omitempty"` + WithHeimdallMilestones bool `arg:"--bor.milestone" json:"bor.milestone"` VMDebug bool `arg:"--vmdebug" flag:"" default:"false" json:"dmdebug"` -} -func (node *Node) configure(base Node, nodeNumber int) error { + NodeKey *ecdsa.PrivateKey `arg:"-"` + NodeKeyHex string `arg:"--nodekeyhex" json:"nodekeyhex,omitempty"` +} +func (node *NodeArgs) Configure(base NodeArgs, nodeNumber int) error { if len(node.Name) == 0 { node.Name = fmt.Sprintf("%s-%d", base.Chain, nodeNumber) } @@ -62,14 +71,19 @@ func (node *Node) configure(base Node, nodeNumber int) error { node.StaticPeers = base.StaticPeers + var err error + node.NodeKey, err = crypto.GenerateKey() + if err != nil { + return err + } + node.NodeKeyHex = hex.EncodeToString(crypto.FromECDSA(node.NodeKey)) + node.Metrics = base.Metrics node.MetricsPort = base.MetricsPort node.MetricsAddr = base.MetricsAddr node.Snapshots = base.Snapshots - var err error - node.PrivateApiAddr, _, err = portFromBase(base.PrivateApiAddr, nodeNumber, 1) if err != nil { @@ -86,15 +100,34 @@ func (node *Node) configure(base Node, nodeNumber int) error { node.Port = base.Port + nodeNumber + node.WithHeimdallMilestones = base.WithHeimdallMilestones + return nil } -func (node Node) ChainID() *big.Int { - return &big.Int{} +func (node *NodeArgs) GetName() string { + return node.Name +} + +func (node *NodeArgs) ChainID() *big.Int { + config := params.ChainConfigByChainName(node.Chain) + if config == nil { + return nil + } + return config.ChainID +} + +func (node *NodeArgs) GetHttpPort() int { + return node.HttpPort +} + +func (node *NodeArgs) GetEnodeURL() string { + port := node.Port + return enode.NewV4(&node.NodeKey.PublicKey, net.ParseIP("127.0.0.1"), port, port).URLv4() } type BlockProducer struct { - Node + NodeArgs Mine bool `arg:"--mine" flag:"true"` Etherbase string `arg:"--miner.etherbase"` DevPeriod int `arg:"--dev.period"` @@ -105,11 +138,10 @@ type BlockProducer struct { account *accounts.Account } -func (m BlockProducer) Configure(baseNode Node, nodeNumber int) (int, interface{}, error) { - err := m.configure(baseNode, nodeNumber) - +func (m *BlockProducer) Configure(baseNode NodeArgs, nodeNumber int) error { + err := m.NodeArgs.Configure(baseNode, nodeNumber) if err != nil { - return -1, nil, err + return err } switch m.Chain { @@ -117,10 +149,12 @@ func (m BlockProducer) Configure(baseNode Node, nodeNumber int) (int, interface{ if m.DevPeriod == 0 { m.DevPeriod = 30 } - m.account = accounts.NewAccount(m.Name() + "-etherbase") + m.account = accounts.NewAccount(m.GetName() + "-etherbase") + core.DevnetEtherbase = m.account.Address + core.DevnetSignPrivateKey = m.account.SigKey() case networkname.BorDevnetChainName: - m.account = accounts.NewAccount(m.Name() + "-etherbase") + m.account = accounts.NewAccount(m.GetName() + "-etherbase") if len(m.HttpApi) == 0 { m.HttpApi = "admin,eth,erigon,web3,net,debug,trace,txpool,parity,ots,bor" @@ -131,47 +165,29 @@ func (m BlockProducer) Configure(baseNode Node, nodeNumber int) (int, interface{ m.Etherbase = m.account.Address.Hex() } - return m.HttpPort, m, nil -} - -func (n BlockProducer) Name() string { - return n.Node.Name + return nil } -func (n BlockProducer) Account() *accounts.Account { +func (n *BlockProducer) Account() *accounts.Account { return n.account } -func (n BlockProducer) IsBlockProducer() bool { +func (n *BlockProducer) IsBlockProducer() bool { return true } type NonBlockProducer struct { - Node + NodeArgs HttpApi string `arg:"--http.api" default:"admin,eth,debug,net,trace,web3,erigon,txpool" json:"http.api"` TorrentPort string `arg:"--torrent.port" default:"42070" json:"torrent.port"` NoDiscover string `arg:"--nodiscover" flag:"" default:"true" json:"nodiscover"` } -func (n NonBlockProducer) Configure(baseNode Node, nodeNumber int) (int, interface{}, error) { - err := n.configure(baseNode, nodeNumber) - - if err != nil { - return -1, nil, err - } - - return n.HttpPort, n, nil -} - -func (n NonBlockProducer) Name() string { - return n.Node.Name -} - -func (n NonBlockProducer) IsBlockProducer() bool { +func (n *NonBlockProducer) IsBlockProducer() bool { return false } -func (n NonBlockProducer) Account() *accounts.Account { +func (n *NonBlockProducer) Account() *accounts.Account { return nil } diff --git a/cmd/devnet/args/node_test.go b/cmd/devnet/args/node_args_test.go similarity index 89% rename from cmd/devnet/args/node_test.go rename to cmd/devnet/args/node_args_test.go index ddd7de4c8c9..a67370b19ea 100644 --- a/cmd/devnet/args/node_test.go +++ b/cmd/devnet/args/node_args_test.go @@ -13,7 +13,7 @@ func TestNodeArgs(t *testing.T) { asMap := map[string]struct{}{} nodeArgs, _ := args.AsArgs(args.BlockProducer{ - Node: args.Node{ + NodeArgs: args.NodeArgs{ DataDir: filepath.Join("data", fmt.Sprintf("%d", 1)), PrivateApiAddr: "localhost:9092", }, @@ -37,7 +37,7 @@ func TestNodeArgs(t *testing.T) { } nodeArgs, _ = args.AsArgs(args.NonBlockProducer{ - Node: args.Node{ + NodeArgs: args.NodeArgs{ DataDir: filepath.Join("data", fmt.Sprintf("%d", 2)), StaticPeers: "enode", PrivateApiAddr: "localhost:9091", @@ -162,8 +162,26 @@ func producingNodeArgs(dataDir string, nodeNumber int) []string { authrpcPortArg, _ := parameterFromArgument("--authrpc.port", "8551") natArg, _ := parameterFromArgument("--nat", "none") accountSlotsArg, _ := parameterFromArgument("--txpool.accountslots", "16") - - return []string{buildDirArg, dataDirArg, chainType, privateApiAddr, httpPortArg, authrpcPortArg, mine, httpApi, ws, natArg, devPeriod, consoleVerbosity, p2pProtocol, downloaderArg, accountSlotsArg} + withHeimdallMilestonesArg, _ := parameterFromArgument("--bor.milestone", "false") + + return []string{ + buildDirArg, + dataDirArg, + chainType, + privateApiAddr, + httpPortArg, + authrpcPortArg, + mine, + httpApi, + ws, + natArg, + devPeriod, + consoleVerbosity, + p2pProtocol, + downloaderArg, + accountSlotsArg, + withHeimdallMilestonesArg, + } } // nonMiningNodeArgs returns custom args for starting a non-mining node @@ -182,6 +200,24 @@ func nonProducingNodeArgs(dataDir string, nodeNumber int, enode string) []string authrpcPortArg, _ := parameterFromArgument("--authrpc.port", "8551") natArg, _ := parameterFromArgument("--nat", "none") ws := wsArg - - return []string{buildDirArg, dataDirArg, chainType, privateApiAddr, httpPortArg, authrpcPortArg, httpApi, ws, natArg, staticPeers, noDiscover, consoleVerbosity, torrentPort, p2pProtocol, downloaderArg} + withHeimdallMilestonesArg, _ := parameterFromArgument("--bor.milestone", "false") + + return []string{ + buildDirArg, + dataDirArg, + chainType, + privateApiAddr, + httpPortArg, + authrpcPortArg, + httpApi, + ws, + natArg, + staticPeers, + noDiscover, + consoleVerbosity, + torrentPort, + p2pProtocol, + downloaderArg, + withHeimdallMilestonesArg, + } } diff --git a/cmd/devnet/contracts/backend.go b/cmd/devnet/contracts/backend.go index fc9e7237519..98c6e71281c 100644 --- a/cmd/devnet/contracts/backend.go +++ b/cmd/devnet/contracts/backend.go @@ -3,6 +3,7 @@ package contracts import ( "context" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "math/big" ethereum "github.com/ledgerwatch/erigon" @@ -10,7 +11,6 @@ import ( "github.com/ledgerwatch/erigon-lib/common/hexutility" "github.com/ledgerwatch/erigon/accounts/abi/bind" "github.com/ledgerwatch/erigon/cmd/devnet/devnet" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/rpc" "github.com/ledgerwatch/erigon/turbo/adapter/ethapi" diff --git a/cmd/devnet/contracts/steps/l1l2transfers.go b/cmd/devnet/contracts/steps/l1l2transfers.go index c002c61c956..74cb162a02f 100644 --- a/cmd/devnet/contracts/steps/l1l2transfers.go +++ b/cmd/devnet/contracts/steps/l1l2transfers.go @@ -8,6 +8,7 @@ import ( "math" "math/big" + "github.com/ledgerwatch/erigon-lib/chain/networkname" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon/accounts/abi" "github.com/ledgerwatch/erigon/accounts/abi/bind" @@ -18,7 +19,6 @@ import ( "github.com/ledgerwatch/erigon/cmd/devnet/requests" "github.com/ledgerwatch/erigon/cmd/devnet/scenarios" "github.com/ledgerwatch/erigon/cmd/devnet/services" - "github.com/ledgerwatch/erigon/params/networkname" "github.com/ledgerwatch/erigon/rpc" "github.com/ledgerwatch/erigon/turbo/adapter/ethapi" ) diff --git a/cmd/devnet/contracts/steps/l2l1transfers.go b/cmd/devnet/contracts/steps/l2l1transfers.go index b7b04efe35e..59481c8d022 100644 --- a/cmd/devnet/contracts/steps/l2l1transfers.go +++ b/cmd/devnet/contracts/steps/l2l1transfers.go @@ -6,6 +6,7 @@ import ( "fmt" "math/big" + "github.com/ledgerwatch/erigon-lib/chain/networkname" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon/accounts/abi" "github.com/ledgerwatch/erigon/accounts/abi/bind" @@ -16,7 +17,6 @@ import ( "github.com/ledgerwatch/erigon/cmd/devnet/requests" "github.com/ledgerwatch/erigon/cmd/devnet/scenarios" "github.com/ledgerwatch/erigon/cmd/devnet/services" - "github.com/ledgerwatch/erigon/params/networkname" "github.com/ledgerwatch/erigon/rpc" "github.com/ledgerwatch/erigon/turbo/adapter/ethapi" ) diff --git a/cmd/devnet/contracts/steps/subscriber.go b/cmd/devnet/contracts/steps/subscriber.go index b9900f28573..00322c95539 100644 --- a/cmd/devnet/contracts/steps/subscriber.go +++ b/cmd/devnet/contracts/steps/subscriber.go @@ -3,6 +3,7 @@ package contracts_steps import ( "context" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "math/big" ethereum "github.com/ledgerwatch/erigon" @@ -18,7 +19,6 @@ import ( "github.com/ledgerwatch/erigon/cmd/devnet/requests" "github.com/ledgerwatch/erigon/cmd/devnet/scenarios" "github.com/ledgerwatch/erigon/cmd/devnet/transactions" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/rpc" ) diff --git a/cmd/devnet/devnet/context.go b/cmd/devnet/devnet/context.go index 002567e22dd..97348746e75 100644 --- a/cmd/devnet/devnet/context.go +++ b/cmd/devnet/devnet/context.go @@ -151,7 +151,7 @@ func CurrentNetwork(ctx context.Context) *Network { } if current := CurrentNode(ctx); current != nil { - if n, ok := current.(*node); ok { + if n, ok := current.(*devnetNode); ok { return n.network } } diff --git a/cmd/devnet/devnet/network.go b/cmd/devnet/devnet/network.go index 701b71f763d..2f6e948d827 100644 --- a/cmd/devnet/devnet/network.go +++ b/cmd/devnet/devnet/network.go @@ -2,11 +2,9 @@ package devnet import ( "context" - "errors" "fmt" + "github.com/ledgerwatch/erigon/cmd/utils" "math/big" - "net" - "net/url" "os" "reflect" "strings" @@ -15,7 +13,6 @@ import ( "github.com/ledgerwatch/erigon-lib/common/dbg" "github.com/ledgerwatch/erigon/cmd/devnet/args" - "github.com/ledgerwatch/erigon/cmd/devnet/devnetutils" "github.com/ledgerwatch/erigon/cmd/devnet/requests" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/params" @@ -40,6 +37,7 @@ type Network struct { BorStateSyncDelay time.Duration BorPeriod time.Duration BorMinBlockSize int + BorWithMilestones *bool wg sync.WaitGroup peers []string namedNodes map[string]Node @@ -55,11 +53,6 @@ func (nw *Network) ChainID() *big.Int { // Start starts the process for multiple erigon nodes running on the dev chain func (nw *Network) Start(ctx context.Context) error { - - type configurable interface { - Configure(baseNode args.Node, nodeNumber int) (int, interface{}, error) - } - for _, service := range nw.Services { if err := service.Start(ctx); err != nil { nw.Stop() @@ -67,7 +60,7 @@ func (nw *Network) Start(ctx context.Context) error { } } - baseNode := args.Node{ + baseNode := args.NodeArgs{ DataDir: nw.DataDir, Chain: nw.Chain, Port: nw.BasePort, @@ -76,35 +69,42 @@ func (nw *Network) Start(ctx context.Context) error { Snapshots: nw.Snapshots, } + if nw.BorWithMilestones != nil { + baseNode.WithHeimdallMilestones = *nw.BorWithMilestones + } else { + baseNode.WithHeimdallMilestones = utils.WithHeimdallMilestones.Value + } + cliCtx := CliContext(ctx) metricsEnabled := cliCtx.Bool("metrics") metricsNode := cliCtx.Int("metrics.node") nw.namedNodes = map[string]Node{} - for i, node := range nw.Nodes { - if configurable, ok := node.(configurable); ok { - + for i, nodeArgs := range nw.Nodes { + { base := baseNode - if metricsEnabled && metricsNode == i { base.Metrics = true base.MetricsPort = cliCtx.Int("metrics.port") } + base.StaticPeers = strings.Join(nw.peers, ",") - nodePort, args, err := configurable.Configure(base, i) - - if err == nil { - node, err = nw.createNode(fmt.Sprintf("%s:%d", nw.BaseRPCHost, nodePort), args) + err := nodeArgs.Configure(base, i) + if err != nil { + nw.Stop() + return err } + node, err := nw.createNode(nodeArgs) if err != nil { nw.Stop() return err } nw.Nodes[i] = node - nw.namedNodes[node.Name()] = node + nw.namedNodes[node.GetName()] = node + nw.peers = append(nw.peers, nodeArgs.GetEnodeURL()) for _, service := range nw.Services { service.NodeCreated(ctx, node) @@ -114,7 +114,6 @@ func (nw *Network) Start(ctx context.Context) error { for _, node := range nw.Nodes { err := nw.startNode(node) - if err != nil { nw.Stop() return err @@ -123,25 +122,6 @@ func (nw *Network) Start(ctx context.Context) error { for _, service := range nw.Services { service.NodeStarted(ctx, node) } - - // get the enode of the node - // - note this has the side effect of waiting for the node to start - enode, err := getEnode(node) - - if err != nil { - if errors.Is(err, devnetutils.ErrInvalidEnodeString) { - continue - } - - nw.Stop() - return err - } - - nw.peers = append(nw.peers, enode) - - // TODO do we need to call AddPeer to the nodes to make them aware of this one - // the current model only works for an appending node network where the peers gossip - // connections - not sure if this is the case ? } return nil @@ -149,11 +129,13 @@ func (nw *Network) Start(ctx context.Context) error { var blockProducerFunds = (&big.Int{}).Mul(big.NewInt(1000), big.NewInt(params.Ether)) -func (nw *Network) createNode(nodeAddr string, cfg interface{}) (Node, error) { - n := &node{ +func (nw *Network) createNode(nodeArgs Node) (Node, error) { + nodeAddr := fmt.Sprintf("%s:%d", nw.BaseRPCHost, nodeArgs.GetHttpPort()) + + n := &devnetNode{ sync.Mutex{}, requests.NewRequestGenerator(nodeAddr, nw.Logger), - cfg, + nodeArgs, &nw.wg, nw, make(chan error), @@ -198,33 +180,15 @@ func copyFlags(flags []cli.Flag) []cli.Flag { func (nw *Network) startNode(n Node) error { nw.wg.Add(1) - node := n.(*node) - - args, err := args.AsArgs(node.args) + node := n.(*devnetNode) + args, err := args.AsArgs(node.nodeArgs) if err != nil { return err } - if len(nw.peers) > 0 { - peersIndex := -1 - - for i, arg := range args { - if strings.HasPrefix(arg, "--staticpeers") { - peersIndex = i - break - } - } - - if peersIndex >= 0 { - args[peersIndex] = args[peersIndex] + "," + strings.Join(nw.peers, ",") - } else { - args = append(args, "--staticpeers="+strings.Join(nw.peers, ",")) - } - } - go func() { - nw.Logger.Info("Running node", "name", node.Name(), "args", args) + nw.Logger.Info("Running node", "name", node.GetName(), "args", args) // catch any errors and avoid panics if an error occurs defer func() { @@ -233,17 +197,17 @@ func (nw *Network) startNode(n Node) error { return } - nw.Logger.Error("catch panic", "node", node.Name(), "err", panicResult, "stack", dbg.Stack()) + nw.Logger.Error("catch panic", "node", node.GetName(), "err", panicResult, "stack", dbg.Stack()) nw.Stop() os.Exit(1) }() // cli flags are not thread safe and assume only one copy of a flag // variable is needed per process - which does not work here - app := erigonapp.MakeApp(node.Name(), node.run, copyFlags(erigoncli.DefaultFlags)) + app := erigonapp.MakeApp(node.GetName(), node.run, copyFlags(erigoncli.DefaultFlags)) if err := app.Run(args); err != nil { - nw.Logger.Warn("App run returned error", "node", node.Name(), "err", err) + nw.Logger.Warn("App run returned error", "node", node.GetName(), "err", err) } }() @@ -254,50 +218,6 @@ func (nw *Network) startNode(n Node) error { return nil } -// getEnode returns the enode of the netowrk node -func getEnode(n Node) (string, error) { - reqCount := 0 - - for { - nodeInfo, err := n.AdminNodeInfo() - - if err != nil { - if r, ok := n.(*node); ok { - if !r.running() { - return "", err - } - } - - if reqCount < 10 { - var urlErr *url.Error - if errors.As(err, &urlErr) { - var opErr *net.OpError - if errors.As(urlErr.Err, &opErr) { - var callErr *os.SyscallError - if errors.As(opErr.Err, &callErr) { - if strings.HasPrefix(callErr.Syscall, "connect") { - reqCount++ - time.Sleep(time.Duration(devnetutils.RandomInt(5)) * time.Second) - continue - } - } - } - } - } - - return "", err - } - - enode, err := devnetutils.UniqueIDFromEnode(nodeInfo.Enode) - - if err != nil { - return "", err - } - - return enode, nil - } -} - func (nw *Network) Stop() { type stoppable interface { Stop() diff --git a/cmd/devnet/devnet/node.go b/cmd/devnet/devnet/node.go index 83776a3adc8..ef2d5589eae 100644 --- a/cmd/devnet/devnet/node.go +++ b/cmd/devnet/devnet/node.go @@ -24,10 +24,13 @@ import ( type Node interface { requests.RequestGenerator - Name() string + GetName() string ChainID() *big.Int + GetHttpPort() int + GetEnodeURL() string Account() *accounts.Account IsBlockProducer() bool + Configure(baseNode args.NodeArgs, nodeNumber int) error } type NodeSelector interface { @@ -41,7 +44,7 @@ func (f NodeSelectorFunc) Test(ctx context.Context, node Node) bool { } func HTTPHost(n Node) string { - if n, ok := n.(*node); ok { + if n, ok := n.(*devnetNode); ok { host := n.nodeCfg.Http.HttpListenAddress if host == "" { @@ -54,10 +57,10 @@ func HTTPHost(n Node) string { return "" } -type node struct { +type devnetNode struct { sync.Mutex requests.RequestGenerator - args interface{} + nodeArgs Node wg *sync.WaitGroup network *Network startErr chan error @@ -66,7 +69,7 @@ type node struct { ethNode *enode.ErigonNode } -func (n *node) Stop() { +func (n *devnetNode) Stop() { var toClose *enode.ErigonNode n.Lock() @@ -83,13 +86,13 @@ func (n *node) Stop() { n.done() } -func (n *node) running() bool { +func (n *devnetNode) running() bool { n.Lock() defer n.Unlock() return n.startErr == nil && n.ethNode != nil } -func (n *node) done() { +func (n *devnetNode) done() { n.Lock() defer n.Unlock() if n.wg != nil { @@ -99,37 +102,36 @@ func (n *node) done() { } } -func (n *node) IsBlockProducer() bool { - _, isBlockProducer := n.args.(args.BlockProducer) - return isBlockProducer +func (n *devnetNode) Configure(args.NodeArgs, int) error { + return nil } -func (n *node) Account() *accounts.Account { - if miner, ok := n.args.(args.BlockProducer); ok { - return miner.Account() - } +func (n *devnetNode) IsBlockProducer() bool { + return n.nodeArgs.IsBlockProducer() +} - return nil +func (n *devnetNode) Account() *accounts.Account { + return n.nodeArgs.Account() } -func (n *node) Name() string { - if named, ok := n.args.(interface{ Name() string }); ok { - return named.Name() - } +func (n *devnetNode) GetName() string { + return n.nodeArgs.GetName() +} - return "" +func (n *devnetNode) ChainID() *big.Int { + return n.nodeArgs.ChainID() } -func (n *node) ChainID() *big.Int { - if n.ethCfg != nil { - return n.ethCfg.Genesis.Config.ChainID - } +func (n *devnetNode) GetHttpPort() int { + return n.nodeArgs.GetHttpPort() +} - return nil +func (n *devnetNode) GetEnodeURL() string { + return n.nodeArgs.GetEnodeURL() } // run configures, creates and serves an erigon node -func (n *node) run(ctx *cli.Context) error { +func (n *devnetNode) run(ctx *cli.Context) error { var logger log.Logger var tracer tracers.Tracer var err error diff --git a/cmd/devnet/main.go b/cmd/devnet/main.go index 827d8d7f8b5..5de9d579018 100644 --- a/cmd/devnet/main.go +++ b/cmd/devnet/main.go @@ -3,6 +3,7 @@ package main import ( "context" "fmt" + "github.com/ledgerwatch/erigon/cmd/utils" "os" "os/signal" "path/filepath" @@ -11,6 +12,7 @@ import ( "syscall" "time" + "github.com/ledgerwatch/erigon-lib/chain/networkname" "github.com/ledgerwatch/erigon/cmd/devnet/accounts" _ "github.com/ledgerwatch/erigon/cmd/devnet/accounts/steps" _ "github.com/ledgerwatch/erigon/cmd/devnet/admin" @@ -27,7 +29,6 @@ import ( "github.com/ledgerwatch/erigon/cmd/devnet/requests" "github.com/ledgerwatch/erigon/cmd/devnet/scenarios" "github.com/ledgerwatch/erigon/cmd/devnet/services" - "github.com/ledgerwatch/erigon/params/networkname" "github.com/ledgerwatch/log/v3" "github.com/ledgerwatch/erigon/cmd/utils/flags" @@ -332,7 +333,7 @@ func initDevnet(ctx *cli.Context, logger log.Logger) (devnet.Devnet, error) { DataDir: dataDir, Chain: networkname.BorDevnetChainName, Logger: logger, - BasePort: 30303, + BasePort: 40303, BasePrivateApiAddr: "localhost:10090", BaseRPCHost: baseRpcHost, BaseRPCPort: baseRpcPort, @@ -344,16 +345,16 @@ func initDevnet(ctx *cli.Context, logger log.Logger) (devnet.Devnet, error) { account_services.NewFaucet(networkname.BorDevnetChainName, faucetSource), }, Nodes: []devnet.Node{ - args.BlockProducer{ - Node: args.Node{ + &args.BlockProducer{ + NodeArgs: args.NodeArgs{ ConsoleVerbosity: "0", DirVerbosity: "5", WithoutHeimdall: true, }, AccountSlots: 200, }, - args.NonBlockProducer{ - Node: args.Node{ + &args.NonBlockProducer{ + NodeArgs: args.NodeArgs{ ConsoleVerbosity: "0", DirVerbosity: "5", WithoutHeimdall: true, @@ -364,11 +365,14 @@ func initDevnet(ctx *cli.Context, logger log.Logger) (devnet.Devnet, error) { } else { var heimdallGrpc string var services []devnet.Service + var withMilestones = utils.WithHeimdallMilestones.Value checkpointOwner := accounts.NewAccount("checkpoint-owner") if ctx.Bool(LocalHeimdallFlag.Name) { config := *params.BorDevnetChainConfig + // milestones are not supported yet on the local heimdall + withMilestones = false if sprintSize := uint64(ctx.Int(BorSprintSizeFlag.Name)); sprintSize > 0 { config.Bor.Sprint = map[string]uint64{"0": sprintSize} @@ -389,33 +393,34 @@ func initDevnet(ctx *cli.Context, logger log.Logger) (devnet.Devnet, error) { DataDir: dataDir, Chain: networkname.BorDevnetChainName, Logger: logger, - BasePort: 30303, + BasePort: 40303, BasePrivateApiAddr: "localhost:10090", BaseRPCHost: baseRpcHost, BaseRPCPort: baseRpcPort, BorStateSyncDelay: 5 * time.Second, + BorWithMilestones: &withMilestones, Services: append(services, account_services.NewFaucet(networkname.BorDevnetChainName, faucetSource)), Alloc: types.GenesisAlloc{ faucetSource.Address: {Balance: accounts.EtherAmount(200_000)}, }, Nodes: []devnet.Node{ - args.BlockProducer{ - Node: args.Node{ + &args.BlockProducer{ + NodeArgs: args.NodeArgs{ ConsoleVerbosity: "0", DirVerbosity: "5", HeimdallGRpc: heimdallGrpc, }, AccountSlots: 200, }, - args.BlockProducer{ - Node: args.Node{ + &args.BlockProducer{ + NodeArgs: args.NodeArgs{ ConsoleVerbosity: "0", DirVerbosity: "5", HeimdallGRpc: heimdallGrpc, }, AccountSlots: 200, }, - /*args.BlockProducer{ + /*&args.BlockProducer{ Node: args.Node{ ConsoleVerbosity: "0", DirVerbosity: "5", @@ -423,8 +428,8 @@ func initDevnet(ctx *cli.Context, logger log.Logger) (devnet.Devnet, error) { }, AccountSlots: 200, },*/ - args.NonBlockProducer{ - Node: args.Node{ + &args.NonBlockProducer{ + NodeArgs: args.NodeArgs{ ConsoleVerbosity: "0", DirVerbosity: "5", HeimdallGRpc: heimdallGrpc, @@ -439,15 +444,15 @@ func initDevnet(ctx *cli.Context, logger log.Logger) (devnet.Devnet, error) { BasePort: 30403, BasePrivateApiAddr: "localhost:10190", BaseRPCHost: baseRpcHost, - BaseRPCPort: baseRpcPort, + BaseRPCPort: baseRpcPort + 1000, Services: append(services, account_services.NewFaucet(networkname.DevChainName, faucetSource)), Alloc: types.GenesisAlloc{ faucetSource.Address: {Balance: accounts.EtherAmount(200_000)}, checkpointOwner.Address: {Balance: accounts.EtherAmount(10_000)}, }, Nodes: []devnet.Node{ - args.BlockProducer{ - Node: args.Node{ + &args.BlockProducer{ + NodeArgs: args.NodeArgs{ ConsoleVerbosity: "0", DirVerbosity: "5", VMDebug: true, @@ -456,8 +461,8 @@ func initDevnet(ctx *cli.Context, logger log.Logger) (devnet.Devnet, error) { DevPeriod: 5, AccountSlots: 200, }, - args.NonBlockProducer{ - Node: args.Node{ + &args.NonBlockProducer{ + NodeArgs: args.NodeArgs{ ConsoleVerbosity: "0", DirVerbosity: "3", }, @@ -482,15 +487,15 @@ func initDevnet(ctx *cli.Context, logger log.Logger) (devnet.Devnet, error) { account_services.NewFaucet(networkname.DevChainName, faucetSource), }, Nodes: []devnet.Node{ - args.BlockProducer{ - Node: args.Node{ + &args.BlockProducer{ + NodeArgs: args.NodeArgs{ ConsoleVerbosity: "0", DirVerbosity: "5", }, AccountSlots: 200, }, - args.NonBlockProducer{ - Node: args.Node{ + &args.NonBlockProducer{ + NodeArgs: args.NodeArgs{ ConsoleVerbosity: "0", DirVerbosity: "5", }, diff --git a/cmd/devnet/requests/account.go b/cmd/devnet/requests/account.go index d77834ff0cb..30e1fa7e506 100644 --- a/cmd/devnet/requests/account.go +++ b/cmd/devnet/requests/account.go @@ -2,11 +2,11 @@ package requests import ( "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "math/big" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/hexutility" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/rpc" ) @@ -36,7 +36,7 @@ type StorageResult struct { func (reqGen *requestGenerator) GetCode(address libcommon.Address, blockRef rpc.BlockReference) (hexutility.Bytes, error) { var result hexutility.Bytes - if err := reqGen.callCli(&result, Methods.ETHGetCode, address, blockRef); err != nil { + if err := reqGen.rpcCall(&result, Methods.ETHGetCode, address, blockRef); err != nil { return nil, err } @@ -46,7 +46,7 @@ func (reqGen *requestGenerator) GetCode(address libcommon.Address, blockRef rpc. func (reqGen *requestGenerator) GetBalance(address libcommon.Address, blockRef rpc.BlockReference) (*big.Int, error) { var result hexutil.Big - if err := reqGen.callCli(&result, Methods.ETHGetBalance, address, blockRef); err != nil { + if err := reqGen.rpcCall(&result, Methods.ETHGetBalance, address, blockRef); err != nil { return nil, err } @@ -56,7 +56,7 @@ func (reqGen *requestGenerator) GetBalance(address libcommon.Address, blockRef r func (reqGen *requestGenerator) GetTransactionCount(address libcommon.Address, blockRef rpc.BlockReference) (*big.Int, error) { var result hexutil.Big - if err := reqGen.callCli(&result, Methods.ETHGetTransactionCount, address, blockRef); err != nil { + if err := reqGen.rpcCall(&result, Methods.ETHGetTransactionCount, address, blockRef); err != nil { return nil, err } @@ -67,7 +67,7 @@ func (reqGen *requestGenerator) DebugAccountAt(blockHash libcommon.Hash, txIndex var b DebugAccountAt method, body := reqGen.debugAccountAt(blockHash, txIndex, account) - if res := reqGen.call(method, body, &b); res.Err != nil { + if res := reqGen.rpcCallJSON(method, body, &b); res.Err != nil { return nil, fmt.Errorf("failed to get account: %v", res.Err) } diff --git a/cmd/devnet/requests/admin.go b/cmd/devnet/requests/admin.go index be9f6447003..6fb4567d162 100644 --- a/cmd/devnet/requests/admin.go +++ b/cmd/devnet/requests/admin.go @@ -7,7 +7,7 @@ import ( func (reqGen *requestGenerator) AdminNodeInfo() (p2p.NodeInfo, error) { var result p2p.NodeInfo - if err := reqGen.callCli(&result, Methods.AdminNodeInfo); err != nil { + if err := reqGen.rpcCall(&result, Methods.AdminNodeInfo); err != nil { return p2p.NodeInfo{}, err } diff --git a/cmd/devnet/requests/block.go b/cmd/devnet/requests/block.go index 153f376c4a0..b5d719adf46 100644 --- a/cmd/devnet/requests/block.go +++ b/cmd/devnet/requests/block.go @@ -2,11 +2,11 @@ package requests import ( "encoding/json" + hexutil2 "github.com/ledgerwatch/erigon-lib/common/hexutil" "math/big" libcommon "github.com/ledgerwatch/erigon-lib/common" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/common/math" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/rpc" @@ -24,7 +24,7 @@ func (bn BlockNumber) Uint64() uint64 { } func AsBlockNumber(n *big.Int) BlockNumber { - return BlockNumber(hexutil.EncodeBig(n)) + return BlockNumber(hexutil2.EncodeBig(n)) } var BlockNumbers = struct { @@ -40,45 +40,75 @@ var BlockNumbers = struct { Pending: "pending", } -type Block struct { +type BlockWithTxHashes struct { *types.Header - Hash libcommon.Hash `json:"hash"` - Transactions []*jsonrpc.RPCTransaction `json:"transactions"` + Hash libcommon.Hash `json:"hash"` + TransactionHashes []libcommon.Hash } -func (b *Block) UnmarshalJSON(input []byte) error { - type body struct { - Hash libcommon.Hash `json:"hash"` - Transactions []*jsonrpc.RPCTransaction `json:"transactions"` +func (b *BlockWithTxHashes) UnmarshalJSON(input []byte) error { + var header types.Header + if err := json.Unmarshal(input, &header); err != nil { + return err } - bd := body{} - + var bd struct { + Hash libcommon.Hash `json:"hash"` + TransactionHashes []libcommon.Hash `json:"transactions"` + } if err := json.Unmarshal(input, &bd); err != nil { return err } - header := types.Header{} + b.Header = &header + b.Hash = bd.Hash + b.TransactionHashes = bd.TransactionHashes + + return nil +} +type Block struct { + BlockWithTxHashes + Transactions []*jsonrpc.RPCTransaction `json:"transactions"` +} + +func (b *Block) UnmarshalJSON(input []byte) error { + var header types.Header if err := json.Unmarshal(input, &header); err != nil { return err } + var bd struct { + Hash libcommon.Hash `json:"hash"` + Transactions []*jsonrpc.RPCTransaction `json:"transactions"` + } + if err := json.Unmarshal(input, &bd); err != nil { + return err + } + b.Header = &header b.Hash = bd.Hash b.Transactions = bd.Transactions + + if bd.Transactions != nil { + b.TransactionHashes = make([]libcommon.Hash, len(b.Transactions)) + for _, t := range bd.Transactions { + b.TransactionHashes = append(b.TransactionHashes, t.Hash) + } + } + return nil } type EthGetTransactionCount struct { CommonResponse - Result hexutil.Uint64 `json:"result"` + Result hexutil2.Uint64 `json:"result"` } func (reqGen *requestGenerator) BlockNumber() (uint64, error) { - var result hexutil.Uint64 + var result hexutil2.Uint64 - if err := reqGen.callCli(&result, Methods.ETHBlockNumber); err != nil { + if err := reqGen.rpcCall(&result, Methods.ETHBlockNumber); err != nil { return 0, err } @@ -87,8 +117,15 @@ func (reqGen *requestGenerator) BlockNumber() (uint64, error) { func (reqGen *requestGenerator) GetBlockByNumber(blockNum rpc.BlockNumber, withTxs bool) (*Block, error) { var result Block + var err error + + if withTxs { + err = reqGen.rpcCall(&result, Methods.ETHGetBlockByNumber, blockNum, withTxs) + } else { + err = reqGen.rpcCall(&result.BlockWithTxHashes, Methods.ETHGetBlockByNumber, blockNum, withTxs) + } - if err := reqGen.callCli(&result, Methods.ETHGetBlockByNumber, blockNum, withTxs); err != nil { + if err != nil { return nil, err } @@ -98,7 +135,7 @@ func (reqGen *requestGenerator) GetBlockByNumber(blockNum rpc.BlockNumber, withT func (req *requestGenerator) GetRootHash(startBlock uint64, endBlock uint64) (libcommon.Hash, error) { var result string - if err := req.callCli(&result, Methods.BorGetRootHash, startBlock, endBlock); err != nil { + if err := req.rpcCall(&result, Methods.BorGetRootHash, startBlock, endBlock); err != nil { return libcommon.Hash{}, err } diff --git a/cmd/devnet/requests/event.go b/cmd/devnet/requests/event.go index 2ece47d6636..379b78a77c1 100644 --- a/cmd/devnet/requests/event.go +++ b/cmd/devnet/requests/event.go @@ -4,11 +4,11 @@ import ( "context" "encoding/json" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" ethereum "github.com/ledgerwatch/erigon" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/hexutility" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core/types" ) @@ -50,7 +50,7 @@ func NewLog(hash libcommon.Hash, blockNum uint64, address libcommon.Address, top func (reqGen *requestGenerator) FilterLogs(ctx context.Context, query ethereum.FilterQuery) ([]types.Log, error) { var result []types.Log - if err := reqGen.callCli(&result, Methods.ETHGetLogs, query); err != nil { + if err := reqGen.rpcCall(&result, Methods.ETHGetLogs, query); err != nil { return nil, err } diff --git a/cmd/devnet/requests/request_generator.go b/cmd/devnet/requests/request_generator.go index 80bbe5f5708..fa0b3c1196f 100644 --- a/cmd/devnet/requests/request_generator.go +++ b/cmd/devnet/requests/request_generator.go @@ -3,9 +3,11 @@ package requests import ( "context" "encoding/json" + "errors" "fmt" "io" "math/big" + "net" "net/http" "strings" "sync" @@ -151,11 +153,15 @@ var Methods = struct { ETHCall: "eth_call", } -func (req *requestGenerator) call(method RPCMethod, body string, response interface{}) callResult { +func (req *requestGenerator) rpcCallJSON(method RPCMethod, body string, response interface{}) callResult { + ctx := context.Background() + req.reqID++ start := time.Now() targetUrl := "http://" + req.target - err := post(req.client, targetUrl, string(method), body, response, req.logger) - req.reqID++ + + err := retryConnects(ctx, func(ctx context.Context) error { + return post(ctx, req.client, targetUrl, string(method), body, response, req.logger) + }) return callResult{ RequestBody: body, @@ -167,14 +173,56 @@ func (req *requestGenerator) call(method RPCMethod, body string, response interf } } -func (req *requestGenerator) callCli(result interface{}, method RPCMethod, args ...interface{}) error { - cli, err := req.cli(context.Background()) - +func (req *requestGenerator) rpcCall(result interface{}, method RPCMethod, args ...interface{}) error { + ctx := context.Background() + client, err := req.rpcClient(ctx) if err != nil { return err } - return cli.Call(result, string(method), args...) + return retryConnects(ctx, func(ctx context.Context) error { + return client.CallContext(ctx, result, string(method), args...) + }) +} + +const connectionTimeout = time.Second * 5 + +func isConnectionError(err error) bool { + var opErr *net.OpError + if errors.As(err, &opErr) { + return opErr.Op == "dial" + } + return false +} + +func retryConnects(ctx context.Context, op func(context.Context) error) error { + ctx, cancel := context.WithTimeout(ctx, connectionTimeout) + defer cancel() + return retry(ctx, op, isConnectionError, time.Millisecond*200, nil) +} + +func retry(ctx context.Context, op func(context.Context) error, isRecoverableError func(error) bool, delay time.Duration, lastErr error) error { + err := op(ctx) + if err == nil { + return nil + } + if errors.Is(err, context.DeadlineExceeded) && lastErr != nil { + return lastErr + } + if !isRecoverableError(err) { + return err + } + + delayTimer := time.NewTimer(delay) + select { + case <-delayTimer.C: + return retry(ctx, op, isRecoverableError, delay, err) + case <-ctx.Done(): + if errors.Is(ctx.Err(), context.DeadlineExceeded) { + return err + } + return ctx.Err() + } } type PingResult callResult @@ -231,17 +279,15 @@ func NewRequestGenerator(target string, logger log.Logger) RequestGenerator { client: &http.Client{ Timeout: time.Second * 10, }, - reqID: 1, logger: logger, target: target, } } -func (req *requestGenerator) cli(ctx context.Context) (*rpc.Client, error) { +func (req *requestGenerator) rpcClient(ctx context.Context) (*rpc.Client, error) { if req.requestClient == nil { var err error req.requestClient, err = rpc.DialContext(ctx, "http://"+req.target, req.logger) - if err != nil { return nil, err } @@ -250,14 +296,23 @@ func (req *requestGenerator) cli(ctx context.Context) (*rpc.Client, error) { return req.requestClient, nil } -func post(client *http.Client, url, method, request string, response interface{}, logger log.Logger) error { +func post(ctx context.Context, client *http.Client, url, method, request string, response interface{}, logger log.Logger) error { start := time.Now() - r, err := client.Post(url, "application/json", strings.NewReader(request)) // nolint:bodyclose + + req, err := http.NewRequest("POST", url, strings.NewReader(request)) + if err != nil { + return err + } + req.Header.Set("Content-Type", "application/json") + req = req.WithContext(ctx) + + r, err := client.Do(req) // nolint:bodyclose if err != nil { return fmt.Errorf("client failed to make post request: %w", err) } - defer func(Body io.ReadCloser) { - closeErr := Body.Close() + + defer func(body io.ReadCloser) { + closeErr := body.Close() if closeErr != nil { logger.Warn("body close", "err", closeErr) } @@ -288,11 +343,12 @@ func post(client *http.Client, url, method, request string, response interface{} // subscribe connects to a websocket client and returns the subscription handler and a channel buffer func (req *requestGenerator) Subscribe(ctx context.Context, method SubMethod, subChan interface{}, args ...interface{}) (ethereum.Subscription, error) { - var err error - if req.subscriptionClient == nil { - req.subscriptionClient, err = rpc.DialWebsocket(ctx, "ws://"+req.target, "", req.logger) - + err := retryConnects(ctx, func(ctx context.Context) error { + var err error + req.subscriptionClient, err = rpc.DialWebsocket(ctx, "ws://"+req.target, "", req.logger) + return err + }) if err != nil { return nil, fmt.Errorf("failed to dial websocket: %v", err) } diff --git a/cmd/devnet/requests/trace.go b/cmd/devnet/requests/trace.go index 4704e5e8859..9ebc7b43729 100644 --- a/cmd/devnet/requests/trace.go +++ b/cmd/devnet/requests/trace.go @@ -3,10 +3,10 @@ package requests import ( "encoding/json" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/hexutility" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/rpc" "github.com/ledgerwatch/erigon/turbo/adapter/ethapi" ) @@ -113,7 +113,7 @@ func (reqGen *requestGenerator) TraceCall(blockRef rpc.BlockReference, args etha } method, body := reqGen.traceCall(blockRef, string(argsVal), string(optsVal)) - res := reqGen.call(method, body, &b) + res := reqGen.rpcCallJSON(method, body, &b) if res.Err != nil { return nil, fmt.Errorf("TraceCall rpc failed: %w", res.Err) @@ -134,7 +134,7 @@ func (req *requestGenerator) traceCall(blockRef rpc.BlockReference, callArgs str func (reqGen *requestGenerator) TraceTransaction(hash libcommon.Hash) ([]TransactionTrace, error) { var result []TransactionTrace - if err := reqGen.callCli(&result, Methods.TraceTransaction, hash); err != nil { + if err := reqGen.rpcCall(&result, Methods.TraceTransaction, hash); err != nil { return nil, err } diff --git a/cmd/devnet/requests/transaction.go b/cmd/devnet/requests/transaction.go index cf0889491c8..06d0be67618 100644 --- a/cmd/devnet/requests/transaction.go +++ b/cmd/devnet/requests/transaction.go @@ -4,12 +4,12 @@ import ( "bytes" "encoding/json" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "math/big" ethereum "github.com/ledgerwatch/erigon" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/hexutility" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/rpc" "github.com/ledgerwatch/erigon/turbo/adapter/ethapi" @@ -78,7 +78,7 @@ func (reqGen *requestGenerator) EstimateGas(args ethereum.CallMsg, blockRef Bloc } method, body := reqGen.estimateGas(string(argsVal), blockRef) - res := reqGen.call(method, body, &b) + res := reqGen.rpcCallJSON(method, body, &b) if res.Err != nil { return 0, fmt.Errorf("EstimateGas rpc failed: %w", res.Err) @@ -100,7 +100,7 @@ func (req *requestGenerator) estimateGas(callArgs string, blockRef BlockNumber) func (reqGen *requestGenerator) GasPrice() (*big.Int, error) { var result hexutil.Big - if err := reqGen.callCli(&result, Methods.ETHGasPrice); err != nil { + if err := reqGen.rpcCall(&result, Methods.ETHGasPrice); err != nil { return nil, err } @@ -110,7 +110,7 @@ func (reqGen *requestGenerator) GasPrice() (*big.Int, error) { func (reqGen *requestGenerator) Call(args ethapi.CallArgs, blockRef rpc.BlockReference, overrides *ethapi.StateOverrides) ([]byte, error) { var result hexutility.Bytes - if err := reqGen.callCli(&result, Methods.ETHCall, args, blockRef, overrides); err != nil { + if err := reqGen.rpcCall(&result, Methods.ETHCall, args, blockRef, overrides); err != nil { return nil, err } @@ -125,7 +125,7 @@ func (reqGen *requestGenerator) SendTransaction(signedTx types.Transaction) (lib return libcommon.Hash{}, fmt.Errorf("failed to marshal binary: %v", err) } - if err := reqGen.callCli(&result, Methods.ETHSendRawTransaction, hexutility.Bytes(buf.Bytes())); err != nil { + if err := reqGen.rpcCall(&result, Methods.ETHSendRawTransaction, hexutility.Bytes(buf.Bytes())); err != nil { return libcommon.Hash{}, err } @@ -148,7 +148,7 @@ func (reqGen *requestGenerator) SendTransaction(signedTx types.Transaction) (lib func (req *requestGenerator) GetTransactionByHash(hash libcommon.Hash) (*jsonrpc.RPCTransaction, error) { var result jsonrpc.RPCTransaction - if err := req.callCli(&result, Methods.ETHGetTransactionByHash, hash); err != nil { + if err := req.rpcCall(&result, Methods.ETHGetTransactionByHash, hash); err != nil { return nil, err } @@ -158,7 +158,7 @@ func (req *requestGenerator) GetTransactionByHash(hash libcommon.Hash) (*jsonrpc func (req *requestGenerator) GetTransactionReceipt(hash libcommon.Hash) (*types.Receipt, error) { var result types.Receipt - if err := req.callCli(&result, Methods.ETHGetTransactionReceipt, hash); err != nil { + if err := req.rpcCall(&result, Methods.ETHGetTransactionReceipt, hash); err != nil { return nil, err } diff --git a/cmd/devnet/requests/tx.go b/cmd/devnet/requests/tx.go index 2d32a776221..ec2da47133e 100644 --- a/cmd/devnet/requests/tx.go +++ b/cmd/devnet/requests/tx.go @@ -18,7 +18,7 @@ func (reqGen *requestGenerator) TxpoolContent() (int, int, int, error) { ) method, body := reqGen.txpoolContent() - if res := reqGen.call(method, body, &b); res.Err != nil { + if res := reqGen.rpcCallJSON(method, body, &b); res.Err != nil { return len(pending), len(queued), len(baseFee), fmt.Errorf("failed to fetch txpool content: %v", res.Err) } diff --git a/cmd/devnet/services/accounts/faucet.go b/cmd/devnet/services/accounts/faucet.go index 92279992d76..5a0b88b6dd4 100644 --- a/cmd/devnet/services/accounts/faucet.go +++ b/cmd/devnet/services/accounts/faucet.go @@ -214,7 +214,7 @@ func (f *Faucet) NodeCreated(ctx context.Context, node devnet.Node) { func (f *Faucet) NodeStarted(ctx context.Context, node devnet.Node) { logger := devnet.Logger(ctx) - if strings.HasPrefix(node.Name(), f.chainName) && node.IsBlockProducer() { + if strings.HasPrefix(node.GetName(), f.chainName) && node.IsBlockProducer() { f.Lock() defer f.Unlock() diff --git a/cmd/devnet/services/polygon/checkpoint.go b/cmd/devnet/services/polygon/checkpoint.go index b789d6de2b2..5dcd0d0164b 100644 --- a/cmd/devnet/services/polygon/checkpoint.go +++ b/cmd/devnet/services/polygon/checkpoint.go @@ -10,6 +10,7 @@ import ( "strings" "time" + "github.com/ledgerwatch/erigon-lib/chain/networkname" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/hexutility" "github.com/ledgerwatch/erigon/accounts/abi/bind" @@ -21,7 +22,6 @@ import ( "github.com/ledgerwatch/erigon/consensus/bor/heimdall/checkpoint" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/crypto" - "github.com/ledgerwatch/erigon/params/networkname" ) type CheckpointBlock struct { @@ -126,7 +126,11 @@ func (h *Heimdall) startChildHeaderSubscription(ctx context.Context) { for childHeader := range childHeaderChan { if err := h.handleChildHeader(ctx, childHeader); err != nil { - h.logger.Error("L2 header processing failed", "header", childHeader.Number, "err", err) + if errors.Is(err, notEnoughChildChainTxConfirmationsError) { + h.logger.Info("L2 header processing skipped", "header", childHeader.Number, "err", err) + } else { + h.logger.Error("L2 header processing failed", "header", childHeader.Number, "err", err) + } } } } @@ -149,6 +153,8 @@ func (h *Heimdall) startRootHeaderBlockSubscription() { } } +var notEnoughChildChainTxConfirmationsError = errors.New("the chain doesn't have enough blocks for ChildChainTxConfirmations") + func (h *Heimdall) handleChildHeader(ctx context.Context, header *types.Header) error { h.logger.Debug("no of checkpoint confirmations required", "childChainTxConfirmations", h.checkpointConfig.ChildChainTxConfirmations) @@ -156,9 +162,7 @@ func (h *Heimdall) handleChildHeader(ctx context.Context, header *types.Header) latestConfirmedChildBlock := header.Number.Int64() - int64(h.checkpointConfig.ChildChainTxConfirmations) if latestConfirmedChildBlock <= 0 { - h.logger.Error("no of blocks on childchain is less than confirmations required", - "childChainBlocks", header.Number.Uint64(), "confirmationsRequired", h.checkpointConfig.ChildChainTxConfirmations) - return errors.New("no of blocks on childchain is less than confirmations required") + return notEnoughChildChainTxConfirmationsError } timeStamp := uint64(time.Now().Unix()) diff --git a/cmd/devnet/services/polygon/heimdall.go b/cmd/devnet/services/polygon/heimdall.go index 3eb6d3f1837..a55ce00491e 100644 --- a/cmd/devnet/services/polygon/heimdall.go +++ b/cmd/devnet/services/polygon/heimdall.go @@ -256,14 +256,18 @@ func (h *Heimdall) NodeCreated(ctx context.Context, node devnet.Node) { h.Lock() defer h.Unlock() - if strings.HasPrefix(node.Name(), "bor") && node.IsBlockProducer() && node.Account() != nil { + if strings.HasPrefix(node.GetName(), "bor") && node.IsBlockProducer() && node.Account() != nil { // TODO configurable voting power h.addValidator(node.Account().Address, 1000, 0) } } func (h *Heimdall) NodeStarted(ctx context.Context, node devnet.Node) { - if !strings.HasPrefix(node.Name(), "bor") && node.IsBlockProducer() { + if h.validatorSet == nil { + panic("Heimdall devnet service: unexpected empty validator set! Call addValidator() before starting nodes.") + } + + if !strings.HasPrefix(node.GetName(), "bor") && node.IsBlockProducer() { h.Lock() defer h.Unlock() @@ -276,7 +280,9 @@ func (h *Heimdall) NodeStarted(ctx context.Context, node devnet.Node) { transactOpts, err := bind.NewKeyedTransactorWithChainID(accounts.SigKey(node.Account().Address), node.ChainID()) if err != nil { + h.Unlock() h.unsubscribe() + h.Lock() h.logger.Error("Failed to deploy state sender", "err", err) return } @@ -320,7 +326,7 @@ func (h *Heimdall) NodeStarted(ctx context.Context, node devnet.Node) { h.logger.Info("RootChain deployed", "chain", h.chainConfig.ChainName, "block", blocks[syncTx.Hash()].Number, "addr", h.rootChainAddress) h.logger.Info("StateSender deployed", "chain", h.chainConfig.ChainName, "block", blocks[syncTx.Hash()].Number, "addr", h.syncSenderAddress) - go h.startStateSyncSubacription() + go h.startStateSyncSubscription() go h.startChildHeaderSubscription(deployCtx) go h.startRootHeaderBlockSubscription() }() diff --git a/cmd/devnet/services/polygon/proofgenerator.go b/cmd/devnet/services/polygon/proofgenerator.go index 75faa4c8aa9..3326639d7b0 100644 --- a/cmd/devnet/services/polygon/proofgenerator.go +++ b/cmd/devnet/services/polygon/proofgenerator.go @@ -5,20 +5,20 @@ import ( "context" "errors" "fmt" + "github.com/ledgerwatch/erigon/cl/merkle_tree" "math" "math/big" "strings" "sync" + "github.com/ledgerwatch/erigon-lib/chain/networkname" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/hexutility" "github.com/ledgerwatch/erigon/accounts/abi/bind" - "github.com/ledgerwatch/erigon/cl/merkle_tree" "github.com/ledgerwatch/erigon/cmd/devnet/devnet" "github.com/ledgerwatch/erigon/cmd/devnet/requests" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/crypto" - "github.com/ledgerwatch/erigon/params/networkname" "github.com/ledgerwatch/erigon/rlp" "github.com/ledgerwatch/erigon/rpc" "github.com/ledgerwatch/erigon/turbo/jsonrpc" @@ -38,7 +38,7 @@ func NewProofGenerator() *ProofGenerator { func (pg *ProofGenerator) NodeCreated(ctx context.Context, node devnet.Node) { if pg.heimdall == nil { - if strings.HasPrefix(node.Name(), "bor") { + if strings.HasPrefix(node.GetName(), "bor") { if network := devnet.CurrentNetwork(ctx); network != nil { for _, service := range network.Services { if heimdall, ok := service.(*Heimdall); ok { diff --git a/cmd/devnet/services/polygon/statesync.go b/cmd/devnet/services/polygon/statesync.go index d055b6397ef..0429f5085db 100644 --- a/cmd/devnet/services/polygon/statesync.go +++ b/cmd/devnet/services/polygon/statesync.go @@ -23,7 +23,7 @@ type EventRecordWithBlock struct { BlockNumber uint64 } -func (h *Heimdall) startStateSyncSubacription() { +func (h *Heimdall) startStateSyncSubscription() { var err error syncChan := make(chan *contracts.TestStateSenderStateSynced, 100) diff --git a/cmd/devnet/transactions/block.go b/cmd/devnet/transactions/block.go index cf53d0292c5..7219658c36b 100644 --- a/cmd/devnet/transactions/block.go +++ b/cmd/devnet/transactions/block.go @@ -3,6 +3,7 @@ package transactions import ( "context" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "time" libcommon "github.com/ledgerwatch/erigon-lib/common" @@ -12,7 +13,6 @@ import ( "github.com/ledgerwatch/erigon/cmd/devnet/devnetutils" "github.com/ledgerwatch/erigon/cmd/devnet/requests" "github.com/ledgerwatch/erigon/cmd/devnet/services" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/rpc" ) diff --git a/cmd/devnet/transactions/tx.go b/cmd/devnet/transactions/tx.go index 7298fb41089..f56775094e9 100644 --- a/cmd/devnet/transactions/tx.go +++ b/cmd/devnet/transactions/tx.go @@ -41,7 +41,7 @@ func CheckTxPoolContent(ctx context.Context, expectedPendingSize, expectedQueued } if expectedPendingSize >= 0 && pendingSize != expectedPendingSize { - logger.Error("FAILURE mismatched pending subpool size", "expected", expectedPendingSize, "got", pendingSize) + logger.Debug("FAILURE mismatched pending subpool size", "expected", expectedPendingSize, "got", pendingSize) return } @@ -51,7 +51,7 @@ func CheckTxPoolContent(ctx context.Context, expectedPendingSize, expectedQueued } if expectedBaseFeeSize >= 0 && baseFeeSize != expectedBaseFeeSize { - logger.Error("FAILURE mismatched basefee subpool size", "expected", expectedBaseFeeSize, "got", baseFeeSize) + logger.Debug("FAILURE mismatched basefee subpool size", "expected", expectedBaseFeeSize, "got", baseFeeSize) } logger.Info("Subpool sizes", "pending", pendingSize, "queued", queuedSize, "basefee", baseFeeSize) @@ -335,7 +335,12 @@ func signEIP1559TxsHigherThanBaseFee(ctx context.Context, n int, baseFeePerGas u devnet.Logger(ctx).Info("HIGHER", "transaction", i, "nonce", transaction.Nonce, "value", transaction.Value, "feecap", transaction.FeeCap) - signedTransaction, err := types.SignTx(transaction, signer, accounts.SigKey(fromAddress)) + signerKey := accounts.SigKey(fromAddress) + if signerKey == nil { + return nil, fmt.Errorf("devnet.signEIP1559TxsHigherThanBaseFee failed to SignTx: private key not found for address %s", fromAddress) + } + + signedTransaction, err := types.SignTx(transaction, signer, signerKey) if err != nil { return nil, err } diff --git a/cmd/downloader/main.go b/cmd/downloader/main.go index a8d9f8f08d1..4d702b102e5 100644 --- a/cmd/downloader/main.go +++ b/cmd/downloader/main.go @@ -14,6 +14,7 @@ import ( "github.com/c2h5oh/datasize" grpc_middleware "github.com/grpc-ecosystem/go-grpc-middleware" grpc_recovery "github.com/grpc-ecosystem/go-grpc-middleware/recovery" + "github.com/ledgerwatch/erigon-lib/chain/snapcfg" "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/datadir" "github.com/ledgerwatch/erigon-lib/common/dir" @@ -41,7 +42,6 @@ import ( "github.com/ledgerwatch/erigon/params" "github.com/ledgerwatch/erigon/turbo/debug" "github.com/ledgerwatch/erigon/turbo/logging" - "github.com/ledgerwatch/erigon/turbo/snapshotsync/snapcfg" ) func main() { @@ -148,7 +148,7 @@ func Downloader(ctx context.Context, logger log.Logger) error { if err := datadir.ApplyMigrations(dirs); err != nil { return err } - if err := checkChainName(dirs, chain); err != nil { + if err := checkChainName(ctx, dirs, chain); err != nil { return err } torrentLogLevel, _, err := downloadercfg2.Int2LogLevel(torrentVerbosity) @@ -168,12 +168,17 @@ func Downloader(ctx context.Context, logger log.Logger) error { staticPeers := common.CliString2Array(staticPeersStr) version := "erigon: " + params.VersionWithCommit(params.GitCommit) - cfg, err := downloadercfg2.New(dirs, version, torrentLogLevel, downloadRate, uploadRate, torrentPort, torrentConnsPerFile, torrentDownloadSlots, staticPeers, webseeds) + + webseedsList := common.CliString2Array(webseeds) + if known, ok := snapcfg.KnownWebseeds[chain]; ok { + webseedsList = append(webseedsList, known...) + } + cfg, err := downloadercfg2.New(dirs, version, torrentLogLevel, downloadRate, uploadRate, torrentPort, torrentConnsPerFile, torrentDownloadSlots, staticPeers, webseedsList, chain) if err != nil { return err } - cfg.ClientConfig.PieceHashersPerTorrent = runtime.NumCPU() * 4 + cfg.ClientConfig.PieceHashersPerTorrent = 4 * runtime.NumCPU() cfg.ClientConfig.DisableIPv6 = disableIPV6 cfg.ClientConfig.DisableIPv4 = disableIPV4 @@ -183,7 +188,8 @@ func Downloader(ctx context.Context, logger log.Logger) error { } downloadernat.DoNat(natif, cfg.ClientConfig, logger) - d, err := downloader.New(ctx, cfg, logger, log.LvlInfo) + cfg.DownloadTorrentFilesFromWebseed = true // enable it only for standalone mode now. feature is not fully ready yet + d, err := downloader.New(ctx, cfg, dirs, logger, log.LvlInfo) if err != nil { return err } @@ -373,14 +379,17 @@ func addPreConfiguredHashes(ctx context.Context, d *downloader.Downloader) error return nil } -func checkChainName(dirs datadir.Dirs, chainName string) error { +func checkChainName(ctx context.Context, dirs datadir.Dirs, chainName string) error { if !dir.FileExist(filepath.Join(dirs.Chaindata, "mdbx.dat")) { return nil } - db := mdbx.NewMDBX(log.New()). + db, err := mdbx.NewMDBX(log.New()). Path(dirs.Chaindata).Label(kv.ChainDB). Accede(). - MustOpen() + Open(ctx) + if err != nil { + return err + } defer db.Close() if err := db.View(context.Background(), func(tx kv.Tx) error { cc := tool.ChainConfig(tx) diff --git a/cmd/erigon/main.go b/cmd/erigon/main.go index 6ef1a53f7c9..8b1b0c2b4b7 100644 --- a/cmd/erigon/main.go +++ b/cmd/erigon/main.go @@ -9,11 +9,12 @@ import ( "reflect" "strings" + "github.com/ledgerwatch/erigon-lib/metrics" + "github.com/ledgerwatch/erigon-lib/common/datadir" "github.com/ledgerwatch/erigon-lib/common/dbg" "github.com/ledgerwatch/erigon/diagnostics" "github.com/ledgerwatch/erigon/eth/tracers" - "github.com/ledgerwatch/erigon/metrics" "github.com/ledgerwatch/log/v3" "github.com/pelletier/go-toml" "github.com/urfave/cli/v2" diff --git a/cmd/evm/internal/t8ntool/transition.go b/cmd/evm/internal/t8ntool/transition.go index 38ea2bc5e85..14401d0f94b 100644 --- a/cmd/evm/internal/t8ntool/transition.go +++ b/cmd/evm/internal/t8ntool/transition.go @@ -39,7 +39,6 @@ import ( "github.com/ledgerwatch/erigon-lib/common/length" "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/erigon-lib/kv/kvcfg" - "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/common/math" "github.com/ledgerwatch/erigon/consensus/ethash" "github.com/ledgerwatch/erigon/consensus/merge" @@ -610,8 +609,8 @@ func CalculateStateRoot(tx kv.RwTx) (*libcommon.Hash, error) { if err != nil { return nil, err } - h := common.NewHasher() - defer common.ReturnHasherToPool(h) + h := libcommon.NewHasher() + defer libcommon.ReturnHasherToPool(h) for k, v, err := c.First(); k != nil; k, v, err = c.Next() { if err != nil { return nil, fmt.Errorf("interate over plain state: %w", err) @@ -634,11 +633,11 @@ func CalculateStateRoot(tx kv.RwTx) (*libcommon.Hash, error) { h.Sha.Write(k[length.Addr+length.Incarnation:]) //nolint:errcheck h.Sha.Read(newK[length.Hash+length.Incarnation:]) - if err = tx.Put(kv.HashedStorage, newK, common.CopyBytes(v)); err != nil { + if err = tx.Put(kv.HashedStorage, newK, libcommon.CopyBytes(v)); err != nil { return nil, fmt.Errorf("insert hashed key: %w", err) } } else { - if err = tx.Put(kv.HashedAccounts, newK, common.CopyBytes(v)); err != nil { + if err = tx.Put(kv.HashedAccounts, newK, libcommon.CopyBytes(v)); err != nil { return nil, fmt.Errorf("insert hashed key: %w", err) } } diff --git a/cmd/evm/runner.go b/cmd/evm/runner.go index 5d6407d1f91..b7a8dc52936 100644 --- a/cmd/evm/runner.go +++ b/cmd/evm/runner.go @@ -43,7 +43,6 @@ import ( "github.com/ledgerwatch/erigon/cmd/evm/internal/compiler" "github.com/ledgerwatch/erigon/cmd/utils" - "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/core" "github.com/ledgerwatch/erigon/core/state" "github.com/ledgerwatch/erigon/core/vm" @@ -218,7 +217,7 @@ func runCmd(ctx *cli.Context) error { if err != nil { return err } - code = common.Hex2Bytes(bin) + code = libcommon.Hex2Bytes(bin) } initialGas := ctx.Uint64(GasFlag.Name) if genesisConfig.GasLimit != 0 { diff --git a/cmd/evm/testdata/3/readme.md b/cmd/evm/testdata/3/readme.md index 499f03d7aa7..47792de04c8 100644 --- a/cmd/evm/testdata/3/readme.md +++ b/cmd/evm/testdata/3/readme.md @@ -1,2 +1,2 @@ -These files examplify a transition where a transaction (excuted on block 5) requests +These files examplify a transition where a transaction (executed on block 5) requests the blockhash for block `1`. diff --git a/cmd/evm/testdata/4/readme.md b/cmd/evm/testdata/4/readme.md index 08840d37bd9..a298c32ec77 100644 --- a/cmd/evm/testdata/4/readme.md +++ b/cmd/evm/testdata/4/readme.md @@ -1,3 +1,3 @@ -These files examplify a transition where a transaction (excuted on block 5) requests +These files examplify a transition where a transaction (executed on block 5) requests the blockhash for block `4`, but where the hash for that block is missing. It's expected that executing these should cause `exit` with errorcode `4`. diff --git a/cmd/evm/testdata/8/readme.md b/cmd/evm/testdata/8/readme.md index f3b523d8955..52289f77d69 100644 --- a/cmd/evm/testdata/8/readme.md +++ b/cmd/evm/testdata/8/readme.md @@ -33,7 +33,7 @@ dir=./testdata/8 && ./evm t8n --state.fork=Berlin --input.alloc=$dir/alloc.json ``` -Simlarly, we can provide the input transactions via `stdin` instead of as file: +Similarly, we can provide the input transactions via `stdin` instead of as file: ``` dir=./testdata/8 \ diff --git a/cmd/hack/hack.go b/cmd/hack/hack.go index 25d8e1209a6..42aa5932bdf 100644 --- a/cmd/hack/hack.go +++ b/cmd/hack/hack.go @@ -8,6 +8,7 @@ import ( "encoding/json" "flag" "fmt" + "github.com/ledgerwatch/erigon-lib/kv/dbutils" "math/big" "net/http" _ "net/http/pprof" //nolint:gosec @@ -38,7 +39,6 @@ import ( "github.com/ledgerwatch/erigon/cmd/hack/flow" "github.com/ledgerwatch/erigon/cmd/hack/tool" "github.com/ledgerwatch/erigon/common" - "github.com/ledgerwatch/erigon/common/dbutils" "github.com/ledgerwatch/erigon/common/paths" "github.com/ledgerwatch/erigon/core" "github.com/ledgerwatch/erigon/core/rawdb" @@ -421,7 +421,7 @@ func iterateOverCode(chaindata string) error { if err := tx.ForEach(kv.Code, nil, func(k, v []byte) error { if len(v) > 0 && v[0] == 0xef { fmt.Printf("Found code with hash %x: %x\n", k, v) - hashes[libcommon.BytesToHash(k)] = common.CopyBytes(v) + hashes[libcommon.BytesToHash(k)] = libcommon.CopyBytes(v) } return nil }); err != nil { diff --git a/cmd/integration/commands/refetence_db.go b/cmd/integration/commands/refetence_db.go index 73d73c77d46..ac717c8f360 100644 --- a/cmd/integration/commands/refetence_db.go +++ b/cmd/integration/commands/refetence_db.go @@ -389,7 +389,7 @@ MainLoop: if !fileScanner.Scan() { break MainLoop } - k := common.CopyBytes(fileScanner.Bytes()) + k := common2.CopyBytes(fileScanner.Bytes()) if bytes.Equal(k, endData) { break } @@ -397,7 +397,7 @@ MainLoop: if !fileScanner.Scan() { break MainLoop } - v := common.CopyBytes(fileScanner.Bytes()) + v := common2.CopyBytes(fileScanner.Bytes()) v = common.FromHex(string(v[1:])) if casted, ok := c.(kv.RwCursorDupSort); ok { diff --git a/cmd/integration/commands/root.go b/cmd/integration/commands/root.go index 0b7976f85e8..61628fd1b3c 100644 --- a/cmd/integration/commands/root.go +++ b/cmd/integration/commands/root.go @@ -7,7 +7,6 @@ import ( "path/filepath" "strings" - "github.com/c2h5oh/datasize" "github.com/ledgerwatch/log/v3" "github.com/spf13/cobra" "golang.org/x/sync/semaphore" @@ -63,9 +62,9 @@ func dbCfg(label kv.Label, path string) kv2.MdbxOpts { const ThreadsLimit = 9_000 limiterB := semaphore.NewWeighted(ThreadsLimit) opts := kv2.NewMDBX(log.New()).Path(path).Label(label).RoTxsLimiter(limiterB).Accede() - if label == kv.ChainDB { - opts = opts.MapSize(8 * datasize.TB) - } + //if label == kv.ChainDB { + // opts = opts.MapSize(8 * datasize.TB) + //} if databaseVerbosity != -1 { opts = opts.DBVerbosity(kv.DBVerbosityLvl(databaseVerbosity)) } diff --git a/cmd/integration/commands/stages.go b/cmd/integration/commands/stages.go index 724abdff0a7..6fbc0da460a 100644 --- a/cmd/integration/commands/stages.go +++ b/cmd/integration/commands/stages.go @@ -15,6 +15,7 @@ import ( "github.com/ledgerwatch/erigon/consensus/bor/heimdallgrpc" "github.com/ledgerwatch/erigon/core/rawdb/blockio" "github.com/ledgerwatch/erigon/node/nodecfg" + "github.com/ledgerwatch/erigon/p2p/sentry/sentry_multi_client" "github.com/ledgerwatch/erigon/turbo/builder" "github.com/ledgerwatch/erigon/turbo/snapshotsync/freezeblocks" "github.com/ledgerwatch/log/v3" @@ -33,7 +34,6 @@ import ( "github.com/ledgerwatch/erigon-lib/kv/rawdbv3" libstate "github.com/ledgerwatch/erigon-lib/state" "github.com/ledgerwatch/erigon/cmd/hack/tool/fromdb" - "github.com/ledgerwatch/erigon/cmd/sentry/sentry" "github.com/ledgerwatch/erigon/consensus" "github.com/ledgerwatch/erigon/core" "github.com/ledgerwatch/erigon/core/rawdb" @@ -477,6 +477,7 @@ func init() { rootCmd.AddCommand(cmdStageSnapshots) withConfig(cmdStageHeaders) + withIntegrityChecks(cmdStageHeaders) withDataDir(cmdStageHeaders) withUnwind(cmdStageHeaders) withReset(cmdStageHeaders) @@ -647,11 +648,23 @@ func stageHeaders(db kv.RwDB, ctx context.Context, logger log.Logger) error { engine, _, _, _, _ := newSync(ctx, db, nil /* miningConfig */, logger) chainConfig, _, _ := fromdb.ChainConfig(db), kvcfg.HistoryV3.FromDB(db), fromdb.PruneMode(db) - return db.Update(ctx, func(tx kv.RwTx) error { - if !(unwind > 0 || reset) { - logger.Info("This command only works with --unwind or --reset options") + if integritySlow { + if err := db.View(ctx, func(tx kv.Tx) error { + log.Info("[integrity] no gaps in canonical headers") + integrity.NoGapsInCanonicalHeaders(tx, ctx, br) + return nil + }); err != nil { + return err } + return nil + } + if !(unwind > 0 || reset) { + logger.Error("This command only works with --unwind or --reset options") + return nil + } + + return db.Update(ctx, func(tx kv.RwTx) error { if reset { dirs := datadir.New(datadirCli) if err := reset2.ResetBlocks(tx, db, agg, br, bw, dirs, *chainConfig, engine, logger); err != nil { @@ -1516,7 +1529,7 @@ func newSync(ctx context.Context, db kv.RwDB, miningConfig *params.MiningConfig, maxBlockBroadcastPeers := func(header *types.Header) uint { return 0 } - sentryControlServer, err := sentry.NewMultiClient( + sentryControlServer, err := sentry_multi_client.NewMultiClient( db, "", chainConfig, diff --git a/cmd/integration/commands/state_domains.go b/cmd/integration/commands/state_domains.go index 34b80e364f4..fabde89f2f4 100644 --- a/cmd/integration/commands/state_domains.go +++ b/cmd/integration/commands/state_domains.go @@ -5,13 +5,13 @@ import ( "encoding/hex" "errors" "fmt" + "github.com/ledgerwatch/erigon-lib/metrics" "path/filepath" "runtime" "strings" "time" "github.com/holiman/uint256" - "github.com/ledgerwatch/erigon/metrics" "github.com/ledgerwatch/log/v3" "github.com/spf13/cobra" diff --git a/cmd/integration/commands/state_stages.go b/cmd/integration/commands/state_stages.go index 46761fbca0a..3401cf669de 100644 --- a/cmd/integration/commands/state_stages.go +++ b/cmd/integration/commands/state_stages.go @@ -6,6 +6,7 @@ import ( "encoding/json" "errors" "fmt" + "github.com/ledgerwatch/erigon-lib/kv/dbutils" "os" "sort" "time" @@ -24,7 +25,6 @@ import ( "github.com/ledgerwatch/erigon/cmd/hack/tool/fromdb" "github.com/ledgerwatch/erigon/cmd/utils" - "github.com/ledgerwatch/erigon/common/dbutils" "github.com/ledgerwatch/erigon/common/debugprint" "github.com/ledgerwatch/erigon/core" "github.com/ledgerwatch/erigon/core/state" diff --git a/cmd/release/go.mod b/cmd/release/go.mod index fac38415e31..99bfb880ce5 100644 --- a/cmd/release/go.mod +++ b/cmd/release/go.mod @@ -1,5 +1,5 @@ module github.com/ledgerwatch/erigon/cmd/release/v2 -go 1.19 +go 1.20 require github.com/hashicorp/go-version v1.6.0 diff --git a/cmd/rpcdaemon/README.md b/cmd/rpcdaemon/README.md index 1af85e2ba1f..7a275d2ac5b 100644 --- a/cmd/rpcdaemon/README.md +++ b/cmd/rpcdaemon/README.md @@ -117,7 +117,7 @@ If the healthcheck is successful it will return a 200 status code. If the healthcheck fails for any reason a status 500 will be returned. This is true if one of the criteria requested fails its check. -You can set any number of values on the `X-ERIGON-HEALTHCHECK` header. Ones that are not included are skipped in the +You can set any number of values on the `X-ERIGON-HEALTHCHECK` header. Ones that are not included are skipped in the checks. Available Options: @@ -186,6 +186,38 @@ By default data pruned after 90K blocks, can change it by flags like `--prune.hi Some methods, if not found historical data in DB, can fallback to old blocks re-execution - but it requires `h`. +### The --http.url flag + +the `--http.url` flag is an optional flag which allows one to bind the HTTP server to a socket, for example, `tcp6://:8545` or `unix:///erigon_http.socket` + +If the `--http.url` flag is set, then `--http.addr` and `--http.port` with both be ignored. + +note that this is NOT geth-style IPC. for that, read the next section, IPC endpoint(geth-compatible) + + +### HTTPS, HTTP2, and H2C + +Erigon supports HTTPS, HTTP2, and H2C out of the box. H2C is served by the default HTTP handler. + +To enable the HTTPS+HTTP2 server, add flag `--https.enabled`, along with providing flags `-https.cert="/path/to.cert"` and `--https.key=/path/to.key` + +By default, the HTTPS server will run on the HTTP port + 363. use flag `--https.port` to set the port + +The HTTPS server will inherit all other configuration parameters from http, for instance, enabling the websocket server, cors domains, or enabled namespaces + +If the `--https.url` flag is set, then `--https.addr` and `--https.port` with both be ignored. + + +### IPC endpoint (geth compatible) + +erigon supports the geth-style unix socket IPC. you can enable this with `--socket.enabled` flag, +and setting the `--socket.url` flag. For instance, if you wanted the socket to exist at `/var/run/erigon.ipc`, +you would do `--socket.url=unix:///var/run/erigon.ipc` + +you can also use `--socket.url=tcp://:` to serve the raw jsonrpc2 protocol over tcp + +the socket will inherit the namespaces from `http.api` + ### RPC Implementation Status Label "remote" means: `--private.api.addr` flag is required. @@ -248,7 +280,7 @@ The following table shows the current implementation status of Erigon's RPC daem | eth_getFilterChanges | Yes | | | eth_uninstallFilter | Yes | | | eth_getLogs | Yes | | -| | | | +| interned spe | | | | eth_accounts | No | deprecated | | eth_sendRawTransaction | Yes | `remote`. | | eth_sendTransaction | - | not yet implemented | diff --git a/cmd/rpcdaemon/cli/config.go b/cmd/rpcdaemon/cli/config.go index 51d72638a4c..614287a639e 100644 --- a/cmd/rpcdaemon/cli/config.go +++ b/cmd/rpcdaemon/cli/config.go @@ -7,6 +7,7 @@ import ( "fmt" "net" "net/http" + "net/url" "os" "path/filepath" "strings" @@ -88,19 +89,9 @@ func RootCommand() (*cobra.Command, *httpcfg.HttpCfg) { rootCmd.PersistentFlags().StringVar(&cfg.PrivateApiAddr, "private.api.addr", "127.0.0.1:9090", "Erigon's components (txpool, rpcdaemon, sentry, downloader, ...) can be deployed as independent Processes on same/another server. Then components will connect to erigon by this internal grpc API. Example: 127.0.0.1:9090") rootCmd.PersistentFlags().StringVar(&cfg.DataDir, "datadir", "", "path to Erigon working directory") rootCmd.PersistentFlags().BoolVar(&cfg.GraphQLEnabled, "graphql", false, "enables graphql endpoint (disabled by default)") - rootCmd.PersistentFlags().StringVar(&cfg.HttpListenAddress, "http.addr", nodecfg.DefaultHTTPHost, "HTTP-RPC server listening interface") - rootCmd.PersistentFlags().StringVar(&cfg.TLSCertfile, "tls.cert", "", "certificate for client side TLS handshake") - rootCmd.PersistentFlags().StringVar(&cfg.TLSKeyFile, "tls.key", "", "key file for client side TLS handshake") - rootCmd.PersistentFlags().StringVar(&cfg.TLSCACert, "tls.cacert", "", "CA certificate for client side TLS handshake") - rootCmd.PersistentFlags().IntVar(&cfg.HttpPort, "http.port", nodecfg.DefaultHTTPPort, "HTTP-RPC server listening port") - rootCmd.PersistentFlags().StringSliceVar(&cfg.HttpCORSDomain, "http.corsdomain", []string{}, "Comma separated list of domains from which to accept cross origin requests (browser enforced)") - rootCmd.PersistentFlags().StringSliceVar(&cfg.HttpVirtualHost, "http.vhosts", nodecfg.DefaultConfig.HTTPVirtualHosts, "Comma separated list of virtual hostnames from which to accept requests (server enforced). Accepts '*' wildcard.") - rootCmd.PersistentFlags().BoolVar(&cfg.HttpCompression, "http.compression", true, "Disable http compression") - rootCmd.PersistentFlags().StringSliceVar(&cfg.API, "http.api", []string{"eth", "erigon"}, "API's offered over the HTTP-RPC interface: eth,erigon,web3,net,debug,trace,txpool,db. Supported methods: https://github.com/ledgerwatch/erigon/tree/devel/cmd/rpcdaemon") rootCmd.PersistentFlags().Uint64Var(&cfg.Gascap, "rpc.gascap", 50_000_000, "Sets a cap on gas that can be used in eth_call/estimateGas") rootCmd.PersistentFlags().Uint64Var(&cfg.MaxTraces, "trace.maxtraces", 200, "Sets a limit on traces that can be returned in trace_filter") - rootCmd.PersistentFlags().BoolVar(&cfg.WebsocketEnabled, "ws", false, "Enable Websockets - Same port as HTTP") - rootCmd.PersistentFlags().BoolVar(&cfg.WebsocketCompression, "ws.compression", false, "Enable Websocket compression (RFC 7692)") + rootCmd.PersistentFlags().StringVar(&cfg.RpcAllowListFilePath, utils.RpcAccessListFlag.Name, "", "Specify granular (method-by-method) API allowlist") rootCmd.PersistentFlags().UintVar(&cfg.RpcBatchConcurrency, utils.RpcBatchConcurrencyFlag.Name, 2, utils.RpcBatchConcurrencyFlag.Usage) rootCmd.PersistentFlags().BoolVar(&cfg.RpcStreamingDisable, utils.RpcStreamingDisableFlag.Name, false, utils.RpcStreamingDisableFlag.Usage) @@ -108,16 +99,38 @@ func RootCommand() (*cobra.Command, *httpcfg.HttpCfg) { rootCmd.PersistentFlags().BoolVar(&cfg.TraceCompatibility, "trace.compat", false, "Bug for bug compatibility with OE for trace_ routines") rootCmd.PersistentFlags().StringVar(&cfg.TxPoolApiAddr, "txpool.api.addr", "", "txpool api network address, for example: 127.0.0.1:9090 (default: use value of --private.api.addr)") rootCmd.PersistentFlags().BoolVar(&cfg.Sync.UseSnapshots, "snapshot", true, utils.SnapshotFlag.Usage) + rootCmd.PersistentFlags().StringVar(&stateCacheStr, "state.cache", "0MB", "Amount of data to store in StateCache (enabled if no --datadir set). Set 0 to disable StateCache. Defaults to 0MB RAM") rootCmd.PersistentFlags().BoolVar(&cfg.GRPCServerEnabled, "grpc", false, "Enable GRPC server") rootCmd.PersistentFlags().StringVar(&cfg.GRPCListenAddress, "grpc.addr", nodecfg.DefaultGRPCHost, "GRPC server listening interface") rootCmd.PersistentFlags().IntVar(&cfg.GRPCPort, "grpc.port", nodecfg.DefaultGRPCPort, "GRPC server listening port") rootCmd.PersistentFlags().BoolVar(&cfg.GRPCHealthCheckEnabled, "grpc.healthcheck", false, "Enable GRPC health check") rootCmd.PersistentFlags().Float64Var(ðconfig.Defaults.RPCTxFeeCap, utils.RPCGlobalTxFeeCapFlag.Name, utils.RPCGlobalTxFeeCapFlag.Value, utils.RPCGlobalTxFeeCapFlag.Usage) + rootCmd.PersistentFlags().StringVar(&cfg.TLSCertfile, "tls.cert", "", "certificate for client side TLS handshake for GRPC") + rootCmd.PersistentFlags().StringVar(&cfg.TLSKeyFile, "tls.key", "", "key file for client side TLS handshake for GRPC") + rootCmd.PersistentFlags().StringVar(&cfg.TLSCACert, "tls.cacert", "", "CA certificate for client side TLS handshake for GRPC") + + rootCmd.PersistentFlags().StringSliceVar(&cfg.API, "http.api", []string{"eth", "erigon"}, "API's offered over the RPC interface: eth,erigon,web3,net,debug,trace,txpool,db. Supported methods: https://github.com/ledgerwatch/erigon/tree/devel/cmd/rpcdaemon") + + rootCmd.PersistentFlags().BoolVar(&cfg.HttpServerEnabled, "http.enabled", true, "enable http server") + rootCmd.PersistentFlags().StringVar(&cfg.HttpListenAddress, "http.addr", nodecfg.DefaultHTTPHost, "HTTP server listening interface") + rootCmd.PersistentFlags().IntVar(&cfg.HttpPort, "http.port", nodecfg.DefaultHTTPPort, "HTTP server listening port") + rootCmd.PersistentFlags().StringVar(&cfg.HttpURL, "http.url", "", "HTTP server listening url. will OVERRIDE http.addr and http.port. will NOT respect http paths. prefix supported are tcp, unix") + rootCmd.PersistentFlags().StringSliceVar(&cfg.HttpCORSDomain, "http.corsdomain", []string{}, "Comma separated list of domains from which to accept cross origin requests (browser enforced)") + rootCmd.PersistentFlags().StringSliceVar(&cfg.HttpVirtualHost, "http.vhosts", nodecfg.DefaultConfig.HTTPVirtualHosts, "Comma separated list of virtual hostnames from which to accept requests (server enforced). Accepts '*' wildcard.") + rootCmd.PersistentFlags().BoolVar(&cfg.HttpCompression, "http.compression", true, "Disable http compression") + rootCmd.PersistentFlags().BoolVar(&cfg.WebsocketEnabled, "ws", false, "Enable Websockets - Same port as HTTP[S]") + rootCmd.PersistentFlags().BoolVar(&cfg.WebsocketCompression, "ws.compression", false, "Enable Websocket compression (RFC 7692)") - rootCmd.PersistentFlags().BoolVar(&cfg.TCPServerEnabled, "tcp", false, "Enable TCP server") - rootCmd.PersistentFlags().StringVar(&cfg.TCPListenAddress, "tcp.addr", nodecfg.DefaultTCPHost, "TCP server listening interface") - rootCmd.PersistentFlags().IntVar(&cfg.TCPPort, "tcp.port", nodecfg.DefaultTCPPort, "TCP server listening port") + rootCmd.PersistentFlags().BoolVar(&cfg.HttpsServerEnabled, "https.enabled", false, "enable http server") + rootCmd.PersistentFlags().StringVar(&cfg.HttpsListenAddress, "https.addr", nodecfg.DefaultHTTPHost, "rpc HTTPS server listening interface") + rootCmd.PersistentFlags().IntVar(&cfg.HttpsPort, "https.port", 0, "rpc HTTPS server listening port. default to http+363 if not set") + rootCmd.PersistentFlags().StringVar(&cfg.HttpsURL, "https.url", "", "rpc HTTPS server listening url. will OVERRIDE https.addr and https.port. will NOT respect paths. prefix supported are tcp, unix") + rootCmd.PersistentFlags().StringVar(&cfg.HttpsCertfile, "https.cert", "", "certificate for rpc HTTPS server") + rootCmd.PersistentFlags().StringVar(&cfg.HttpsKeyFile, "https.key", "", "key file for rpc HTTPS server") + + rootCmd.PersistentFlags().BoolVar(&cfg.SocketServerEnabled, "socket.enabled", false, "Enable IPC server") + rootCmd.PersistentFlags().StringVar(&cfg.SocketListenUrl, "socket.url", "unix:///var/run/erigon.sock", "IPC server listening url. prefix supported are tcp, unix") rootCmd.PersistentFlags().BoolVar(&cfg.TraceRequests, utils.HTTPTraceFlag.Name, false, "Trace HTTP requests with INFO level") rootCmd.PersistentFlags().DurationVar(&cfg.HTTPTimeouts.ReadTimeout, "http.timeouts.read", rpccfg.DefaultHTTPTimeouts.ReadTimeout, "Maximum duration for reading the entire request, including the body.") @@ -546,7 +559,6 @@ func StartRpcServerWithJwtAuthentication(ctx context.Context, cfg httpcfg.HttpCf func startRegularRpcServer(ctx context.Context, cfg httpcfg.HttpCfg, rpcAPI []rpc.API, logger log.Logger) error { // register apis and create handler stack - httpEndpoint := fmt.Sprintf("%s:%d", cfg.HttpListenAddress, cfg.HttpPort) srv := rpc.NewServer(cfg.RpcBatchConcurrency, cfg.TraceRequests, cfg.RpcStreamingDisable, logger) @@ -558,6 +570,8 @@ func startRegularRpcServer(ctx context.Context, cfg httpcfg.HttpCfg, rpcAPI []rp srv.SetBatchLimit(cfg.BatchLimit) + defer srv.Stop() + var defaultAPIList []rpc.API for _, api := range rpcAPI { @@ -577,43 +591,90 @@ func startRegularRpcServer(ctx context.Context, cfg httpcfg.HttpCfg, rpcAPI []rp return fmt.Errorf("could not start register RPC apis: %w", err) } + info := []interface{}{ + "ws", cfg.WebsocketEnabled, + "ws.compression", cfg.WebsocketCompression, "grpc", cfg.GRPCServerEnabled, + } + + if cfg.SocketServerEnabled { + socketUrl, err := url.Parse(cfg.SocketListenUrl) + if err != nil { + return fmt.Errorf("malformatted socket url %s: %w", cfg.SocketListenUrl, err) + } + tcpListener, err := net.Listen(socketUrl.Scheme, socketUrl.Host+socketUrl.EscapedPath()) + if err != nil { + return fmt.Errorf("could not start Socket Listener: %w", err) + } + defer tcpListener.Close() + go func() { + err := srv.ServeListener(tcpListener) + if err != nil { + if !errors.Is(err, net.ErrClosed) { + logger.Error("Socket Listener Fatal Error", "err", err) + } + } + }() + info = append(info, "socket.url", socketUrl) + logger.Info("Socket Endpoint opened", "url", socketUrl) + } + httpHandler := node.NewHTTPHandlerStack(srv, cfg.HttpCORSDomain, cfg.HttpVirtualHost, cfg.HttpCompression) var wsHandler http.Handler if cfg.WebsocketEnabled { wsHandler = srv.WebsocketHandler([]string{"*"}, nil, cfg.WebsocketCompression, logger) } - graphQLHandler := graphql.CreateHandler(defaultAPIList) - apiHandler, err := createHandler(cfg, defaultAPIList, httpHandler, wsHandler, graphQLHandler, nil) if err != nil { return err } - listener, httpAddr, err := node.StartHTTPEndpoint(httpEndpoint, cfg.HTTPTimeouts, apiHandler) - if err != nil { - return fmt.Errorf("could not start RPC api: %w", err) - } - - if cfg.TCPServerEnabled { - tcpEndpoint := fmt.Sprintf("%s:%d", cfg.TCPListenAddress, cfg.TCPPort) - tcpListener, err := net.Listen("tcp", tcpEndpoint) - if err != nil { - return fmt.Errorf("could not start TCP Listener: %w", err) + if cfg.HttpServerEnabled { + httpEndpoint := fmt.Sprintf("tcp://%s:%d", cfg.HttpListenAddress, cfg.HttpPort) + if cfg.HttpURL != "" { + httpEndpoint = cfg.HttpURL } - go func() { - defer tcpListener.Close() - err := srv.ServeListener(tcpListener) - if err != nil { - logger.Error("TCP Listener Fatal Error", "err", err) - } + listener, httpAddr, err := node.StartHTTPEndpoint(httpEndpoint, &node.HttpEndpointConfig{ + Timeouts: cfg.HTTPTimeouts, + }, apiHandler) + if err != nil { + return fmt.Errorf("could not start RPC api: %w", err) + } + info = append(info, "http.url", httpAddr) + defer func() { + shutdownCtx, cancel := context.WithTimeout(context.Background(), 5*time.Second) + defer cancel() + _ = listener.Shutdown(shutdownCtx) + logger.Info("HTTP endpoint closed", "url", httpAddr) }() - logger.Info("TCP Endpoint opened", "url", tcpEndpoint) } - - info := []interface{}{ - "url", httpAddr, "ws", cfg.WebsocketEnabled, - "ws.compression", cfg.WebsocketCompression, "grpc", cfg.GRPCServerEnabled, + if cfg.HttpsURL != "" { + cfg.HttpsServerEnabled = true + } + if cfg.HttpsServerEnabled { + if cfg.HttpsPort == 0 { + cfg.HttpsPort = cfg.HttpPort + 363 + } + httpsEndpoint := fmt.Sprintf("tcp://%s:%d", cfg.HttpsListenAddress, cfg.HttpsPort) + if cfg.HttpsURL != "" { + httpsEndpoint = cfg.HttpsURL + } + listener, httpAddr, err := node.StartHTTPEndpoint(httpsEndpoint, &node.HttpEndpointConfig{ + Timeouts: cfg.HTTPTimeouts, + HTTPS: true, + CertFile: cfg.HttpsCertfile, + KeyFile: cfg.HttpsKeyFile, + }, apiHandler) + if err != nil { + return fmt.Errorf("could not start RPC api: %w", err) + } + info = append(info, "https.url", httpAddr) + defer func() { + shutdownCtx, cancel := context.WithTimeout(context.Background(), 5*time.Second) + defer cancel() + _ = listener.Shutdown(shutdownCtx) + logger.Info("HTTPS endpoint closed", "url", httpAddr) + }() } var ( @@ -634,26 +695,20 @@ func startRegularRpcServer(ctx context.Context, cfg httpcfg.HttpCfg, rpcAPI []rp } go grpcServer.Serve(grpcListener) info = append(info, "grpc.port", cfg.GRPCPort) - } - logger.Info("HTTP endpoint opened", info...) - - defer func() { - srv.Stop() - shutdownCtx, cancel := context.WithTimeout(context.Background(), 5*time.Second) - defer cancel() - _ = listener.Shutdown(shutdownCtx) - logger.Info("HTTP endpoint closed", "url", httpAddr) - - if cfg.GRPCServerEnabled { - if cfg.GRPCHealthCheckEnabled { - healthServer.Shutdown() + defer func() { + if cfg.GRPCServerEnabled { + if cfg.GRPCHealthCheckEnabled { + healthServer.Shutdown() + } + grpcServer.GracefulStop() + _ = grpcListener.Close() + logger.Info("GRPC endpoint closed", "url", grpcEndpoint) } - grpcServer.GracefulStop() - _ = grpcListener.Close() - logger.Info("GRPC endpoint closed", "url", grpcEndpoint) - } - }() + }() + } + + logger.Info("JsonRpc endpoint opened", info...) <-ctx.Done() logger.Info("Exiting...") return nil @@ -755,7 +810,7 @@ func createHandler(cfg httpcfg.HttpCfg, apiList []rpc.API, httpHandler http.Hand } func createEngineListener(cfg httpcfg.HttpCfg, engineApi []rpc.API, logger log.Logger) (*http.Server, *rpc.Server, string, error) { - engineHttpEndpoint := fmt.Sprintf("%s:%d", cfg.AuthRpcHTTPListenAddress, cfg.AuthRpcPort) + engineHttpEndpoint := fmt.Sprintf("tcp://%s:%d", cfg.AuthRpcHTTPListenAddress, cfg.AuthRpcPort) engineSrv := rpc.NewServer(cfg.RpcBatchConcurrency, cfg.TraceRequests, true, logger) @@ -779,7 +834,9 @@ func createEngineListener(cfg httpcfg.HttpCfg, engineApi []rpc.API, logger log.L return nil, nil, "", err } - engineListener, engineAddr, err := node.StartHTTPEndpoint(engineHttpEndpoint, cfg.AuthRpcTimeouts, engineApiHandler) + engineListener, engineAddr, err := node.StartHTTPEndpoint(engineHttpEndpoint, &node.HttpEndpointConfig{ + Timeouts: cfg.AuthRpcTimeouts, + }, engineApiHandler) if err != nil { return nil, nil, "", fmt.Errorf("could not start RPC api: %w", err) } diff --git a/cmd/rpcdaemon/cli/config_test.go b/cmd/rpcdaemon/cli/config_test.go new file mode 100644 index 00000000000..c14c9cf9456 --- /dev/null +++ b/cmd/rpcdaemon/cli/config_test.go @@ -0,0 +1,21 @@ +package cli + +import ( + "net/url" + "testing" + + "github.com/stretchr/testify/require" +) + +func TestParseSocketUrl(t *testing.T) { + t.Run("sock", func(t *testing.T) { + socketUrl, err := url.Parse("unix:///some/file/path.sock") + require.NoError(t, err) + require.EqualValues(t, "/some/file/path.sock", socketUrl.Host+socketUrl.EscapedPath()) + }) + t.Run("sock", func(t *testing.T) { + socketUrl, err := url.Parse("tcp://localhost:1234") + require.NoError(t, err) + require.EqualValues(t, "localhost:1234", socketUrl.Host+socketUrl.EscapedPath()) + }) +} diff --git a/cmd/rpcdaemon/cli/httpcfg/http_cfg.go b/cmd/rpcdaemon/cli/httpcfg/http_cfg.go index 63d4cb6a0ff..b2b2a99d091 100644 --- a/cmd/rpcdaemon/cli/httpcfg/http_cfg.go +++ b/cmd/rpcdaemon/cli/httpcfg/http_cfg.go @@ -10,37 +10,50 @@ import ( ) type HttpCfg struct { - Enabled bool - PrivateApiAddr string + Enabled bool + GraphQLEnabled bool WithDatadir bool // Erigon's database can be read by separated processes on same machine - in read-only mode - with full support of transactions. It will share same "OS PageCache" with Erigon process. DataDir string Dirs datadir.Dirs - HttpListenAddress string AuthRpcHTTPListenAddress string TLSCertfile string TLSCACert string TLSKeyFile string - HttpPort int - AuthRpcPort int - HttpCORSDomain []string - HttpVirtualHost []string - AuthRpcVirtualHost []string - HttpCompression bool - API []string - Gascap uint64 - MaxTraces uint64 - WebsocketEnabled bool - WebsocketCompression bool - RpcAllowListFilePath string - RpcBatchConcurrency uint - RpcStreamingDisable bool - DBReadConcurrency int - TraceCompatibility bool // Bug for bug compatibility for trace_ routines with OpenEthereum - TxPoolApiAddr string - StateCache kvcache.CoherentConfig - Snap ethconfig.BlocksFreezing - Sync ethconfig.Sync + + HttpServerEnabled bool + HttpURL string + HttpListenAddress string + HttpPort int + HttpCORSDomain []string + HttpVirtualHost []string + AuthRpcVirtualHost []string + HttpCompression bool + + HttpsServerEnabled bool + HttpsURL string + HttpsListenAddress string + HttpsPort int + HttpsCertfile string + HttpsKeyFile string + + AuthRpcPort int + PrivateApiAddr string + + API []string + Gascap uint64 + MaxTraces uint64 + WebsocketEnabled bool + WebsocketCompression bool + RpcAllowListFilePath string + RpcBatchConcurrency uint + RpcStreamingDisable bool + DBReadConcurrency int + TraceCompatibility bool // Bug for bug compatibility for trace_ routines with OpenEthereum + TxPoolApiAddr string + StateCache kvcache.CoherentConfig + Snap ethconfig.BlocksFreezing + Sync ethconfig.Sync // GRPC server GRPCServerEnabled bool @@ -48,10 +61,9 @@ type HttpCfg struct { GRPCPort int GRPCHealthCheckEnabled bool - // Raw TCP Server - TCPServerEnabled bool - TCPListenAddress string - TCPPort int + // Socket Server + SocketServerEnabled bool + SocketListenUrl string JWTSecretPath string // Engine API Authentication TraceRequests bool // Always trace requests in INFO level diff --git a/cmd/rpcdaemon/graphql/graph/helpers.go b/cmd/rpcdaemon/graphql/graph/helpers.go index 4bc6c7da4e6..77b90c38607 100644 --- a/cmd/rpcdaemon/graphql/graph/helpers.go +++ b/cmd/rpcdaemon/graphql/graph/helpers.go @@ -3,6 +3,7 @@ package graph import ( "encoding/hex" "fmt" + hexutil2 "github.com/ledgerwatch/erigon-lib/common/hexutil" "reflect" "strconv" @@ -11,7 +12,6 @@ import ( libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/hexutility" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core/types" ) @@ -21,16 +21,16 @@ func convertDataToStringP(abstractMap map[string]interface{}, field string) *str switch v := abstractMap[field].(type) { case int64: result = strconv.FormatInt(v, 10) - case *hexutil.Big: + case *hexutil2.Big: if reflect.ValueOf(abstractMap[field]).IsZero() { return nil } result = v.String() case hexutility.Bytes: result = v.String() - case hexutil.Uint: + case hexutil2.Uint: result = v.String() - case hexutil.Uint64: + case hexutil2.Uint64: result = v.String() case *libcommon.Address: if reflect.ValueOf(abstractMap[field]).IsZero() { @@ -66,15 +66,15 @@ func convertDataToIntP(abstractMap map[string]interface{}, field string) *int { var result int switch v := abstractMap[field].(type) { - case hexutil.Uint64: - resultUint, err := hexutil.DecodeUint64(v.String()) + case hexutil2.Uint64: + resultUint, err := hexutil2.DecodeUint64(v.String()) if err != nil { result = 0 } else { result = int(resultUint) } - case hexutil.Uint: - resultUint, err := hexutil.DecodeUint64(v.String()) + case hexutil2.Uint: + resultUint, err := hexutil2.DecodeUint64(v.String()) if err != nil { result = 0 } else { @@ -94,21 +94,21 @@ func convertDataToUint64P(abstractMap map[string]interface{}, field string) *uin var result uint64 switch v := abstractMap[field].(type) { - case hexutil.Uint64: - resultUint, err := hexutil.DecodeUint64(v.String()) + case hexutil2.Uint64: + resultUint, err := hexutil2.DecodeUint64(v.String()) if err != nil { result = 0 } else { result = resultUint } - case hexutil.Uint: - resultUint, err := hexutil.DecodeUint64(v.String()) + case hexutil2.Uint: + resultUint, err := hexutil2.DecodeUint64(v.String()) if err != nil { result = 0 } else { result = resultUint } - case *hexutil.Big: + case *hexutil2.Big: result = v.ToInt().Uint64() case int: result = abstractMap[field].(uint64) @@ -125,7 +125,7 @@ func convertDataToUint64P(abstractMap map[string]interface{}, field string) *uin func convertStrHexToDec(hexString *string) *string { var result string - resUInt64, err := hexutil.DecodeUint64(*hexString) + resUInt64, err := hexutil2.DecodeUint64(*hexString) if err != nil { fmt.Println(err) result = "0" diff --git a/cmd/rpcdaemon/graphql/graph/schema.resolvers.go b/cmd/rpcdaemon/graphql/graph/schema.resolvers.go index 14947154688..5f8630548b5 100644 --- a/cmd/rpcdaemon/graphql/graph/schema.resolvers.go +++ b/cmd/rpcdaemon/graphql/graph/schema.resolvers.go @@ -8,11 +8,11 @@ import ( "context" "encoding/hex" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "strconv" "strings" "github.com/ledgerwatch/erigon/cmd/rpcdaemon/graphql/graph/model" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/rpc" ) diff --git a/cmd/rpcdaemon/health/health_test.go b/cmd/rpcdaemon/health/health_test.go index 39c71c9cad1..a843923edfe 100644 --- a/cmd/rpcdaemon/health/health_test.go +++ b/cmd/rpcdaemon/health/health_test.go @@ -11,7 +11,8 @@ import ( "testing" "time" - "github.com/ledgerwatch/erigon/common/hexutil" + "github.com/ledgerwatch/erigon-lib/common/hexutil" + "github.com/ledgerwatch/erigon/rpc" ) diff --git a/cmd/rpcdaemon/health/interfaces.go b/cmd/rpcdaemon/health/interfaces.go index c8bdca5dbf8..2fabf8d5de4 100644 --- a/cmd/rpcdaemon/health/interfaces.go +++ b/cmd/rpcdaemon/health/interfaces.go @@ -2,8 +2,8 @@ package health import ( "context" + "github.com/ledgerwatch/erigon-lib/common/hexutil" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/rpc" ) diff --git a/cmd/rpctest/main.go b/cmd/rpctest/main.go index e54e93163c4..5ce6a6c71ab 100644 --- a/cmd/rpctest/main.go +++ b/cmd/rpctest/main.go @@ -82,6 +82,19 @@ func main() { } with(benchEthGetBlockByHash, withErigonUrl, withGethUrl, withNeedCompare, withBlockNum, withRecord, withErrorFile, withLatest) + var benchEthGetBlockByNumber2Cmd = &cobra.Command{ + Use: "benchEthGetBlockByNumber2", + Short: "", + Long: ``, + Run: func(cmd *cobra.Command, args []string) { + err := rpctest.BenchEthGetBlockByNumber2(erigonURL, gethURL, needCompare, latest, blockFrom, blockTo, recordFile, errorFile) + if err != nil { + logger.Error(err.Error()) + } + }, + } + with(benchEthGetBlockByNumber2Cmd, withErigonUrl, withGethUrl, withNeedCompare, withBlockNum, withRecord, withErrorFile, withLatest) + var benchEthGetTransactionByHashCmd = &cobra.Command{ Use: "benchEthGetTransactionByHash", Short: "", @@ -100,7 +113,10 @@ func main() { Short: "", Long: ``, Run: func(cmd *cobra.Command, args []string) { - rpctest.Bench1(erigonURL, gethURL, needCompare, fullTest, blockFrom, blockTo, recordFile) + err := rpctest.Bench1(erigonURL, gethURL, needCompare, fullTest, blockFrom, blockTo, recordFile) + if err != nil { + logger.Error(err.Error()) + } }, } with(bench1Cmd, withErigonUrl, withGethUrl, withNeedCompare, withBlockNum, withRecord) @@ -111,7 +127,10 @@ func main() { Short: "", Long: ``, Run: func(cmd *cobra.Command, args []string) { - rpctest.Bench2(erigonURL) + err := rpctest.Bench2(erigonURL) + if err != nil { + logger.Error(err.Error()) + } }, } var bench3Cmd = &cobra.Command{ @@ -119,7 +138,10 @@ func main() { Short: "", Long: ``, Run: func(cmd *cobra.Command, args []string) { - rpctest.Bench3(erigonURL, gethURL) + err := rpctest.Bench3(erigonURL, gethURL) + if err != nil { + logger.Error(err.Error()) + } }, } with(bench3Cmd, withErigonUrl, withGethUrl) @@ -129,7 +151,10 @@ func main() { Short: "", Long: ``, Run: func(cmd *cobra.Command, args []string) { - rpctest.Bench4(erigonURL) + err := rpctest.Bench4(erigonURL) + if err != nil { + logger.Error(err.Error()) + } }, } with(bench4Cmd, withErigonUrl) @@ -139,7 +164,10 @@ func main() { Short: "", Long: ``, Run: func(cmd *cobra.Command, args []string) { - rpctest.Bench5(erigonURL) + err := rpctest.Bench5(erigonURL) + if err != nil { + logger.Error(err.Error()) + } }, } with(bench5Cmd, withErigonUrl) @@ -148,7 +176,10 @@ func main() { Short: "", Long: ``, Run: func(cmd *cobra.Command, args []string) { - rpctest.Bench6(erigonURL) + err := rpctest.Bench6(erigonURL) + if err != nil { + logger.Error(err.Error()) + } }, } with(bench6Cmd, withErigonUrl) @@ -158,7 +189,10 @@ func main() { Short: "", Long: ``, Run: func(cmd *cobra.Command, args []string) { - rpctest.Bench7(erigonURL, gethURL) + err := rpctest.Bench7(erigonURL, gethURL) + if err != nil { + logger.Error(err.Error()) + } }, } with(bench7Cmd, withErigonUrl, withGethUrl) @@ -178,7 +212,10 @@ func main() { Short: "", Long: ``, Run: func(cmd *cobra.Command, args []string) { - rpctest.Bench9(erigonURL, gethURL, needCompare) + err := rpctest.Bench9(erigonURL, gethURL, needCompare) + if err != nil { + logger.Error(err.Error()) + } }, } with(bench9Cmd, withErigonUrl, withGethUrl, withNeedCompare) @@ -328,6 +365,7 @@ func main() { rootCmd.Flags().Uint64Var(&blockTo, "blockTo", 2101000, "Block number to end test generation at") rootCmd.AddCommand( + benchEthGetBlockByNumber2Cmd, benchEthGetBlockByHash, benchEthCallCmd, benchEthGetTransactionByHashCmd, diff --git a/cmd/rpctest/rpctest/bench1.go b/cmd/rpctest/rpctest/bench1.go index 400e64c19de..bacadf422bf 100644 --- a/cmd/rpctest/rpctest/bench1.go +++ b/cmd/rpctest/rpctest/bench1.go @@ -24,7 +24,7 @@ var routes map[string]string // use false value - to generate vegeta files, it's faster but we can generate vegeta files for Geth and Erigon // // fullTest - if false - then call only methods which RPCDaemon currently supports -func Bench1(erigonURL, gethURL string, needCompare bool, fullTest bool, blockFrom uint64, blockTo uint64, recordFile string) { +func Bench1(erigonURL, gethURL string, needCompare bool, fullTest bool, blockFrom uint64, blockTo uint64, recordFileName string) error { setRoutes(erigonURL, gethURL) var client = &http.Client{ Timeout: time.Second * 600, @@ -44,12 +44,10 @@ func Bench1(erigonURL, gethURL string, needCompare bool, fullTest bool, blockFro res = reqGen.Erigon("eth_blockNumber", reqGen.blockNumber(), &blockNumber) resultsCh <- res if res.Err != nil { - fmt.Printf("Could not get block number: %v\n", res.Err) - return + return fmt.Errorf("Could not get block number: %v\n", res.Err) } if blockNumber.Error != nil { - fmt.Printf("Error getting block number: %d %s\n", blockNumber.Error.Code, blockNumber.Error.Message) - return + return fmt.Errorf("Error getting block number: %d %s\n", blockNumber.Error.Code, blockNumber.Error.Message) } fmt.Printf("Last block: %d\n", blockNumber.Number) accounts := make(map[libcommon.Address]struct{}) @@ -61,8 +59,7 @@ func Bench1(erigonURL, gethURL string, needCompare bool, fullTest bool, blockFro res = reqGen.Erigon("eth_getBlockByNumber", reqGen.getBlockByNumber(bn, true /* withTxs */), &b) resultsCh <- res if res.Err != nil { - fmt.Printf("Could not retrieve block (Erigon) %d: %v\n", bn, res.Err) - return + return fmt.Errorf("Could not retrieve block (Erigon) %d: %v\n", bn, res.Err) } if b.Error != nil { @@ -73,16 +70,13 @@ func Bench1(erigonURL, gethURL string, needCompare bool, fullTest bool, blockFro var bg EthBlockByNumber res = reqGen.Geth("eth_getBlockByNumber", reqGen.getBlockByNumber(bn, true /* withTxs */), &bg) if res.Err != nil { - fmt.Printf("Could not retrieve block (geth) %d: %v\n", bn, res.Err) - return + return fmt.Errorf("Could not retrieve block (geth) %d: %v\n", bn, res.Err) } if bg.Error != nil { - fmt.Printf("Error retrieving block (geth): %d %s\n", bg.Error.Code, bg.Error.Message) - return + return fmt.Errorf("Error retrieving block (geth): %d %s\n", bg.Error.Code, bg.Error.Message) } if !compareBlocks(&b, &bg) { - fmt.Printf("Block difference for %d\n", bn) - return + return fmt.Errorf("Block difference for %d\n", bn) } } @@ -108,12 +102,10 @@ func Bench1(erigonURL, gethURL string, needCompare bool, fullTest bool, blockFro res = reqGen.Erigon("debug_storageRangeAt", reqGen.storageRangeAt(b.Result.Hash, i, tx.To, *nextKey), &sr) resultsCh <- res if res.Err != nil { - fmt.Printf("Could not get storageRange (Erigon): %s: %v\n", tx.Hash, res.Err) - return + return fmt.Errorf("Could not get storageRange (Erigon): %s: %v\n", tx.Hash, res.Err) } if sr.Error != nil { - fmt.Printf("Error getting storageRange: %d %s\n", sr.Error.Code, sr.Error.Message) - return + return fmt.Errorf("Error getting storageRange: %d %s\n", sr.Error.Code, sr.Error.Message) } for k, v := range sr.Result.Storage { @@ -132,8 +124,7 @@ func Bench1(erigonURL, gethURL string, needCompare bool, fullTest bool, blockFro res = reqGen.Geth("debug_storageRangeAt", reqGen.storageRangeAt(b.Result.Hash, i, tx.To, *nextKeyG), &srGeth) resultsCh <- res if res.Err != nil { - fmt.Printf("Could not get storageRange (geth): %s: %v\n", tx.Hash, res.Err) - return + return fmt.Errorf("Could not get storageRange (geth): %s: %v\n", tx.Hash, res.Err) } if srGeth.Error != nil { fmt.Printf("Error getting storageRange (geth): %d %s\n", srGeth.Error.Code, srGeth.Error.Message) @@ -154,7 +145,7 @@ func Bench1(erigonURL, gethURL string, needCompare bool, fullTest bool, blockFro printStorageRange(sm) fmt.Printf("================smg\n") printStorageRange(smg) - return + return fmt.Errorf("Storage range different\n") } } } @@ -183,18 +174,15 @@ func Bench1(erigonURL, gethURL string, needCompare bool, fullTest bool, blockFro res = reqGen.Geth("debug_traceTransaction", reqGen.traceTransaction(tx.Hash), &traceg) resultsCh <- res if res.Err != nil { - fmt.Printf("Could not trace transaction (geth) %s: %v\n", tx.Hash, res.Err) print(client, routes[Geth], reqGen.traceTransaction(tx.Hash)) - return + return fmt.Errorf("Could not trace transaction (geth) %s: %v\n", tx.Hash, res.Err) } if traceg.Error != nil { - fmt.Printf("Error tracing transaction (geth): %d %s\n", traceg.Error.Code, traceg.Error.Message) - return + return fmt.Errorf("Error tracing transaction (geth): %d %s\n", traceg.Error.Code, traceg.Error.Message) } if res.Err == nil && trace.Error == nil { if !compareTraces(&trace, &traceg) { - fmt.Printf("Different traces block %d, tx %s\n", bn, tx.Hash) - return + return fmt.Errorf("Different traces block %d, tx %s\n", bn, tx.Hash) } } } @@ -204,32 +192,28 @@ func Bench1(erigonURL, gethURL string, needCompare bool, fullTest bool, blockFro res = reqGen.Erigon("eth_getTransactionReceipt", reqGen.getTransactionReceipt(tx.Hash), &receipt) resultsCh <- res if res.Err != nil { - fmt.Printf("Count not get receipt (Erigon): %s: %v\n", tx.Hash, res.Err) print(client, routes[Erigon], reqGen.getTransactionReceipt(tx.Hash)) - return + return fmt.Errorf("Count not get receipt (Erigon): %s: %v\n", tx.Hash, res.Err) } if receipt.Error != nil { - fmt.Printf("Error getting receipt (Erigon): %d %s\n", receipt.Error.Code, receipt.Error.Message) - return + return fmt.Errorf("Error getting receipt (Erigon): %d %s\n", receipt.Error.Code, receipt.Error.Message) } if needCompare { var receiptg EthReceipt res = reqGen.Geth("eth_getTransactionReceipt", reqGen.getTransactionReceipt(tx.Hash), &receiptg) resultsCh <- res if res.Err != nil { - fmt.Printf("Count not get receipt (geth): %s: %v\n", tx.Hash, res.Err) print(client, routes[Geth], reqGen.getTransactionReceipt(tx.Hash)) - return + return fmt.Errorf("Count not get receipt (geth): %s: %v\n", tx.Hash, res.Err) } if receiptg.Error != nil { - fmt.Printf("Error getting receipt (geth): %d %s\n", receiptg.Error.Code, receiptg.Error.Message) - return + return fmt.Errorf("Error getting receipt (geth): %d %s\n", receiptg.Error.Code, receiptg.Error.Message) } if !compareReceipts(&receipt, &receiptg) { fmt.Printf("Different receipts block %d, tx %s\n", bn, tx.Hash) print(client, routes[Geth], reqGen.getTransactionReceipt(tx.Hash)) print(client, routes[Erigon], reqGen.getTransactionReceipt(tx.Hash)) - return + return fmt.Errorf("Receipts are different\n") } } } @@ -242,28 +226,23 @@ func Bench1(erigonURL, gethURL string, needCompare bool, fullTest bool, blockFro res = reqGen.Erigon("eth_getBalance", reqGen.getBalance(b.Result.Miner, bn), &balance) resultsCh <- res if res.Err != nil { - fmt.Printf("Could not get account balance (Erigon): %v\n", res.Err) - return + return fmt.Errorf("Could not get account balance (Erigon): %v\n", res.Err) } if balance.Error != nil { - fmt.Printf("Error getting account balance (Erigon): %d %s", balance.Error.Code, balance.Error.Message) - return + return fmt.Errorf("Error getting account balance (Erigon): %d %s", balance.Error.Code, balance.Error.Message) } if needCompare { var balanceg EthBalance res = reqGen.Geth("eth_getBalance", reqGen.getBalance(b.Result.Miner, bn), &balanceg) resultsCh <- res if res.Err != nil { - fmt.Printf("Could not get account balance (geth): %v\n", res.Err) - return + return fmt.Errorf("Could not get account balance (geth): %v\n", res.Err) } if balanceg.Error != nil { - fmt.Printf("Error getting account balance (geth): %d %s\n", balanceg.Error.Code, balanceg.Error.Message) - return + return fmt.Errorf("Error getting account balance (geth): %d %s\n", balanceg.Error.Code, balanceg.Error.Message) } if !compareBalances(&balance, &balanceg) { - fmt.Printf("Miner %x balance difference for block %d\n", b.Result.Miner, bn) - return + return fmt.Errorf("Miner %x balance difference for block %d\n", b.Result.Miner, bn) } } @@ -274,12 +253,10 @@ func Bench1(erigonURL, gethURL string, needCompare bool, fullTest bool, blockFro res = reqGen.Erigon("debug_getModifiedAccountsByNumber", reqGen.getModifiedAccountsByNumber(prevBn, bn), &mag) resultsCh <- res if res.Err != nil { - fmt.Printf("Could not get modified accounts (Erigon): %v\n", res.Err) - return + return fmt.Errorf("Could not get modified accounts (Erigon): %v\n", res.Err) } if mag.Error != nil { - fmt.Printf("Error getting modified accounts (Erigon): %d %s\n", mag.Error.Code, mag.Error.Message) - return + return fmt.Errorf("Error getting modified accounts (Erigon): %d %s\n", mag.Error.Code, mag.Error.Message) } fmt.Printf("Done blocks %d-%d, modified accounts: %d\n", prevBn, bn, len(mag.Result)) @@ -298,8 +275,7 @@ func Bench1(erigonURL, gethURL string, needCompare bool, fullTest bool, blockFro resultsCh <- res if res.Err != nil { - fmt.Printf("Could not get accountRange (Erigon): %v\n", res.Err) - return + return fmt.Errorf("Could not get accountRange (Erigon): %v\n", res.Err) } if sr.Error != nil { @@ -316,8 +292,7 @@ func Bench1(erigonURL, gethURL string, needCompare bool, fullTest bool, blockFro res = reqGen.Geth("debug_accountRange", reqGen.accountRange(bn, pageGeth, 256), &srGeth) resultsCh <- res if res.Err != nil { - fmt.Printf("Could not get accountRange geth: %v\n", res.Err) - return + return fmt.Errorf("Could not get accountRange geth: %v\n", res.Err) } if srGeth.Error != nil { fmt.Printf("Error getting accountRange geth: %d %s\n", srGeth.Error.Code, srGeth.Error.Message) @@ -332,14 +307,14 @@ func Bench1(erigonURL, gethURL string, needCompare bool, fullTest bool, blockFro fmt.Printf("Different next page keys: %x geth %x", page, pageGeth) } if !compareAccountRanges(accRangeErigon, accRangeGeth) { - fmt.Printf("Different in account ranges tx\n") - return + return fmt.Errorf("Different in account ranges tx\n") } } } prevBn = bn } } + return nil } // vegetaWrite (to be run as a goroutine) writing results of server calls into several files: diff --git a/cmd/rpctest/rpctest/bench2.go b/cmd/rpctest/rpctest/bench2.go index 74165c14220..7dd73402800 100644 --- a/cmd/rpctest/rpctest/bench2.go +++ b/cmd/rpctest/rpctest/bench2.go @@ -10,7 +10,7 @@ import ( "github.com/ledgerwatch/erigon/crypto" ) -func Bench2(erigon_url string) { +func Bench2(erigon_url string) error { var client = &http.Client{ Timeout: time.Second * 600, } @@ -19,12 +19,10 @@ func Bench2(erigon_url string) { blockNumTemplate := `{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":%d}` var blockNumber EthBlockNumber if err := post(client, erigon_url, fmt.Sprintf(blockNumTemplate, req_id), &blockNumber); err != nil { - fmt.Printf("Could not get block number: %v\n", err) - return + return fmt.Errorf("Could not get block number: %v\n", err) } if blockNumber.Error != nil { - fmt.Printf("Error getting block number: %d %s\n", blockNumber.Error.Code, blockNumber.Error.Message) - return + return fmt.Errorf("Error getting block number: %d %s\n", blockNumber.Error.Code, blockNumber.Error.Message) } lastBlock := blockNumber.Number fmt.Printf("Last block: %d\n", lastBlock) @@ -35,8 +33,7 @@ func Bench2(erigon_url string) { blockByNumTemplate := `{"jsonrpc":"2.0","method":"eth_getBlockByNumber","params":["0x%x",true],"id":%d}` //nolint var b EthBlockByNumber if err := post(client, erigon_url, fmt.Sprintf(blockByNumTemplate, bn, req_id), &b); err != nil { - fmt.Printf("Could not retrieve block %d: %v\n", bn, err) - return + return fmt.Errorf("Could not retrieve block %d: %v\n", bn, err) } if b.Error != nil { fmt.Printf("Error retrieving block: %d %s\n", b.Error.Code, b.Error.Message) @@ -53,8 +50,7 @@ func Bench2(erigon_url string) { for nextKey != nil { var sr DebugStorageRange if err := post(client, erigon_url, fmt.Sprintf(storageRangeTemplate, b.Result.Hash, i, tx.To, *nextKey, 1024, req_id), &sr); err != nil { - fmt.Printf("Could not get storageRange: %x: %v\n", tx.Hash, err) - return + return fmt.Errorf("Could not get storageRange: %x: %v\n", tx.Hash, err) } if sr.Error != nil { fmt.Printf("Error getting storageRange: %d %s\n", sr.Error.Code, sr.Error.Message) @@ -83,15 +79,14 @@ func Bench2(erigon_url string) { accountRangeTemplate := `{"jsonrpc":"2.0","method":"debug_getModifiedAccountsByNumber","params":[%d, %d],"id":%d}` //nolint var ma DebugModifiedAccounts if err := post(client, erigon_url, fmt.Sprintf(accountRangeTemplate, prevBn, bn, req_id), &ma); err != nil { - fmt.Printf("Could not get modified accounts: %v\n", err) - return + return fmt.Errorf("Could not get modified accounts: %v\n", err) } if ma.Error != nil { - fmt.Printf("Error getting modified accounts: %d %s\n", ma.Error.Code, ma.Error.Message) - return + return fmt.Errorf("Error getting modified accounts: %d %s\n", ma.Error.Code, ma.Error.Message) } fmt.Printf("Done blocks %d-%d, modified accounts: %d\n", prevBn, bn, len(ma.Result)) prevBn = bn } } + return nil } diff --git a/cmd/rpctest/rpctest/bench3.go b/cmd/rpctest/rpctest/bench3.go index 317700750a5..5d4c959b809 100644 --- a/cmd/rpctest/rpctest/bench3.go +++ b/cmd/rpctest/rpctest/bench3.go @@ -11,7 +11,7 @@ import ( "github.com/ledgerwatch/erigon/core/state" ) -func Bench3(erigon_url, geth_url string) { +func Bench3(erigon_url, geth_url string) error { var client = &http.Client{ Timeout: time.Second * 600, } @@ -30,8 +30,7 @@ func Bench3(erigon_url, geth_url string) { encodedKey := base64.StdEncoding.EncodeToString(page) var sr DebugAccountRange if err := post(client, erigon_url, fmt.Sprintf(template, encodedKey, pageSize, req_id), &sr); err != nil { - fmt.Printf("Could not get accountRange: %v\n", err) - return + return fmt.Errorf("Could not get accountRange: %v\n", err) } if sr.Error != nil { fmt.Printf("Error getting accountRange: %d %s\n", sr.Error.Code, sr.Error.Message) @@ -51,9 +50,7 @@ func Bench3(erigon_url, geth_url string) { encodedKey := base64.StdEncoding.EncodeToString(page) var sr DebugAccountRange if err := post(client, geth_url, fmt.Sprintf(template, encodedKey, pageSize, req_id), &sr); err != nil { - - fmt.Printf("Could not get accountRange: %v\n", err) - return + return fmt.Errorf("Could not get accountRange: %v\n", err) } if sr.Error != nil { fmt.Printf("Error getting accountRange: %d %s\n", sr.Error.Code, sr.Error.Message) @@ -67,16 +64,14 @@ func Bench3(erigon_url, geth_url string) { } if !compareAccountRanges(accRangeTG, accRangeGeth) { - fmt.Printf("Different in account ranges tx\n") - return + return fmt.Errorf("Different in account ranges tx\n") } fmt.Println("debug_accountRanges... OK!") template = `{"jsonrpc":"2.0","method":"eth_getBlockByNumber","params":["0x%x",true],"id":%d}` var b EthBlockByNumber if err := post(client, erigon_url, fmt.Sprintf(template, 1720000, req_id), &b); err != nil { - fmt.Printf("Could not retrieve block %d: %v\n", 1720000, err) - return + return fmt.Errorf("Could not retrieve block %d: %v\n", 1720000, err) } if b.Error != nil { fmt.Printf("Error retrieving block: %d %s\n", b.Error.Code, b.Error.Message) @@ -89,27 +84,23 @@ func Bench3(erigon_url, geth_url string) { ` var trace EthTxTrace if err := post(client, erigon_url, fmt.Sprintf(template, txhash, req_id), &trace); err != nil { - fmt.Printf("Could not trace transaction %s: %v\n", txhash, err) print(client, erigon_url, fmt.Sprintf(template, txhash, req_id)) - return + return fmt.Errorf("Could not trace transaction %s: %v\n", txhash, err) } if trace.Error != nil { fmt.Printf("Error tracing transaction: %d %s\n", trace.Error.Code, trace.Error.Message) } var traceg EthTxTrace if err := post(client, geth_url, fmt.Sprintf(template, txhash, req_id), &traceg); err != nil { - fmt.Printf("Could not trace transaction g %s: %v\n", txhash, err) print(client, geth_url, fmt.Sprintf(template, txhash, req_id)) - return + return fmt.Errorf("Could not trace transaction g %s: %v\n", txhash, err) } if traceg.Error != nil { - fmt.Printf("Error tracing transaction g: %d %s\n", traceg.Error.Code, traceg.Error.Message) - return + return fmt.Errorf("Error tracing transaction g: %d %s\n", traceg.Error.Code, traceg.Error.Message) } //print(client, erigon_url, fmt.Sprintf(template, txhash, req_id)) if !compareTraces(&trace, &traceg) { - fmt.Printf("Different traces block %d, tx %s\n", 1720000, txhash) - return + return fmt.Errorf("Different traces block %d, tx %s\n", 1720000, txhash) } } to := libcommon.HexToAddress("0xbb9bc244d798123fde783fcc1c72d3bb8c189413") @@ -125,8 +116,7 @@ func Bench3(erigon_url, geth_url string) { for nextKey != nil { var sr DebugStorageRange if err := post(client, erigon_url, fmt.Sprintf(template, blockhash, i, to, *nextKey, 1024, req_id), &sr); err != nil { - fmt.Printf("Could not get storageRange: %v\n", err) - return + return fmt.Errorf("Could not get storageRange: %v\n", err) } if sr.Error != nil { fmt.Printf("Error getting storageRange: %d %s\n", sr.Error.Code, sr.Error.Message) @@ -144,8 +134,7 @@ func Bench3(erigon_url, geth_url string) { for nextKey != nil { var srg DebugStorageRange if err := post(client, geth_url, fmt.Sprintf(template, blockhash, i, to, *nextKey, 1024, req_id), &srg); err != nil { - fmt.Printf("Could not get storageRange g: %v\n", err) - return + return fmt.Errorf("Could not get storageRange g: %v\n", err) } if srg.Error != nil { fmt.Printf("Error getting storageRange g: %d %s\n", srg.Error.Code, srg.Error.Message) @@ -159,8 +148,9 @@ func Bench3(erigon_url, geth_url string) { } fmt.Printf("storageRange g: %d\n", len(smg)) if !compareStorageRanges(sm, smg) { - fmt.Printf("Different in storage ranges tx\n") - return + return fmt.Errorf("Different in storage ranges tx\n") } + return nil + } diff --git a/cmd/rpctest/rpctest/bench4.go b/cmd/rpctest/rpctest/bench4.go index 1d403049185..347490ce5a5 100644 --- a/cmd/rpctest/rpctest/bench4.go +++ b/cmd/rpctest/rpctest/bench4.go @@ -8,7 +8,7 @@ import ( libcommon "github.com/ledgerwatch/erigon-lib/common" ) -func Bench4(erigon_url string) { +func Bench4(erigon_url string) error { var client = &http.Client{ Timeout: time.Second * 600, } @@ -18,8 +18,7 @@ func Bench4(erigon_url string) { template := `{"jsonrpc":"2.0","method":"eth_getBlockByNumber","params":["0x%x",true],"id":%d}` var b EthBlockByNumber if err := post(client, erigon_url, fmt.Sprintf(template, 1720000, req_id), &b); err != nil { - fmt.Printf("Could not retrieve block %d: %v\n", 1720000, err) - return + return fmt.Errorf("Could not retrieve block %d: %v\n", 1720000, err) } if b.Error != nil { fmt.Printf("Error retrieving block: %d %s\n", b.Error.Code, b.Error.Message) @@ -30,9 +29,8 @@ func Bench4(erigon_url string) { template = `{"jsonrpc":"2.0","method":"debug_traceTransaction","params":["%s"],"id":%d}` var trace EthTxTrace if err := post(client, erigon_url, fmt.Sprintf(template, txhash, req_id), &trace); err != nil { - fmt.Printf("Could not trace transaction %s: %v\n", txhash, err) print(client, erigon_url, fmt.Sprintf(template, txhash, req_id)) - return + return fmt.Errorf("Could not trace transaction %s: %v\n", txhash, err) } if trace.Error != nil { fmt.Printf("Error tracing transaction: %d %s\n", trace.Error.Code, trace.Error.Message) @@ -50,8 +48,7 @@ func Bench4(erigon_url string) { for nextKey != nil { var sr DebugStorageRange if err := post(client, erigon_url, fmt.Sprintf(template, blockhash, i, to, *nextKey, 1024, req_id), &sr); err != nil { - fmt.Printf("Could not get storageRange: %v\n", err) - return + return fmt.Errorf("Could not get storageRange: %v\n", err) } if sr.Error != nil { fmt.Printf("Error getting storageRange: %d %s\n", sr.Error.Code, sr.Error.Message) @@ -64,4 +61,5 @@ func Bench4(erigon_url string) { } } fmt.Printf("storageRange: %d\n", len(sm)) + return nil } diff --git a/cmd/rpctest/rpctest/bench5.go b/cmd/rpctest/rpctest/bench5.go index 2104bc9d6d2..4066df310dc 100644 --- a/cmd/rpctest/rpctest/bench5.go +++ b/cmd/rpctest/rpctest/bench5.go @@ -8,7 +8,7 @@ import ( "time" ) -func Bench5(erigonURL string) { +func Bench5(erigonURL string) error { var client = &http.Client{ Timeout: time.Second * 600, } @@ -24,16 +24,15 @@ func Bench5(erigonURL string) { for scanner.Scan() { req_id++ if err = post(client, erigonURL, fmt.Sprintf(template, scanner.Text(), req_id), &receipt); err != nil { - fmt.Printf("Count not get receipt: %s: %v\n", scanner.Text(), err) - return + return fmt.Errorf("Count not get receipt: %s: %v\n", scanner.Text(), err) } if receipt.Error != nil { - fmt.Printf("Error getting receipt: %d %s\n", receipt.Error.Code, receipt.Error.Message) - return + return fmt.Errorf("Error getting receipt: %d %s\n", receipt.Error.Code, receipt.Error.Message) } } err = scanner.Err() if err != nil { panic(err) } + return nil } diff --git a/cmd/rpctest/rpctest/bench6.go b/cmd/rpctest/rpctest/bench6.go index 825c8b5ebbc..f9fcc3c57ae 100644 --- a/cmd/rpctest/rpctest/bench6.go +++ b/cmd/rpctest/rpctest/bench6.go @@ -8,7 +8,7 @@ import ( libcommon "github.com/ledgerwatch/erigon-lib/common" ) -func Bench6(erigon_url string) { +func Bench6(erigon_url string) error { var client = &http.Client{ Timeout: time.Second * 600, } @@ -20,12 +20,10 @@ func Bench6(erigon_url string) { ` var blockNumber EthBlockNumber if err := post(client, erigon_url, fmt.Sprintf(template, req_id), &blockNumber); err != nil { - fmt.Printf("Could not get block number: %v\n", err) - return + return fmt.Errorf("Could not get block number: %v\n", err) } if blockNumber.Error != nil { - fmt.Printf("Error getting block number: %d %s\n", blockNumber.Error.Code, blockNumber.Error.Message) - return + return fmt.Errorf("Error getting block number: %d %s\n", blockNumber.Error.Code, blockNumber.Error.Message) } lastBlock := blockNumber.Number fmt.Printf("Last block: %d\n", lastBlock) @@ -38,8 +36,7 @@ func Bench6(erigon_url string) { ` var b EthBlockByNumber if err := post(client, erigon_url, fmt.Sprintf(template, bn, req_id), &b); err != nil { - fmt.Printf("Could not retrieve block %d: %v\n", bn, err) - return + return fmt.Errorf("Could not retrieve block %d: %v\n", bn, err) } if b.Error != nil { fmt.Printf("Error retrieving block: %d %s\n", b.Error.Code, b.Error.Message) @@ -56,14 +53,13 @@ func Bench6(erigon_url string) { ` var receipt EthReceipt if err := post(client, erigon_url, fmt.Sprintf(template, tx.Hash, req_id), &receipt); err != nil { - fmt.Printf("Count not get receipt: %s: %v\n", tx.Hash, err) print(client, erigon_url, fmt.Sprintf(template, tx.Hash, req_id)) - return + return fmt.Errorf("Count not get receipt: %s: %v\n", tx.Hash, err) } if receipt.Error != nil { - fmt.Printf("Error getting receipt: %d %s\n", receipt.Error.Code, receipt.Error.Message) - return + return fmt.Errorf("Error getting receipt: %d %s\n", receipt.Error.Code, receipt.Error.Message) } } } + return nil } diff --git a/cmd/rpctest/rpctest/bench7.go b/cmd/rpctest/rpctest/bench7.go index 29c5e49a7e8..2a6dd6b49d5 100644 --- a/cmd/rpctest/rpctest/bench7.go +++ b/cmd/rpctest/rpctest/bench7.go @@ -8,7 +8,7 @@ import ( libcommon "github.com/ledgerwatch/erigon-lib/common" ) -func Bench7(erigonURL, gethURL string) { +func Bench7(erigonURL, gethURL string) error { setRoutes(erigonURL, gethURL) var client = &http.Client{ Timeout: time.Second * 600, @@ -34,8 +34,7 @@ func Bench7(erigonURL, gethURL string) { for nextKey != nil { var sr DebugStorageRange if err := post(client, erigonURL, fmt.Sprintf(template, blockhash, i, to, *nextKey, 1024, reqID), &sr); err != nil { - fmt.Printf("Could not get storageRange: %v\n", err) - return + return fmt.Errorf("Could not get storageRange: %v\n", err) } if sr.Error != nil { fmt.Printf("Error getting storageRange: %d %s\n", sr.Error.Code, sr.Error.Message) @@ -54,8 +53,7 @@ func Bench7(erigonURL, gethURL string) { for nextKeyG != nil { var srg DebugStorageRange if err := post(client, gethURL, fmt.Sprintf(template, blockhash, i, to, *nextKeyG, 1024, reqID), &srg); err != nil { - fmt.Printf("Could not get storageRange: %v\n", err) - return + return fmt.Errorf("Could not get storageRange: %v\n", err) } if srg.Error != nil { fmt.Printf("Error getting storageRange: %d %s\n", srg.Error.Code, srg.Error.Message) @@ -76,7 +74,8 @@ func Bench7(erigonURL, gethURL string) { printStorageRange(sm) fmt.Printf("================smg\n") printStorageRange(smg) - return + return fmt.Errorf("storage are different") } fmt.Printf("storageRanges: %d\n", len(sm)) + return nil } diff --git a/cmd/rpctest/rpctest/bench9.go b/cmd/rpctest/rpctest/bench9.go index 7b2a4266ee4..9c06fef9697 100644 --- a/cmd/rpctest/rpctest/bench9.go +++ b/cmd/rpctest/rpctest/bench9.go @@ -11,7 +11,7 @@ import ( ) // bench9 tests eth_getProof -func Bench9(erigonURL, gethURL string, needCompare bool) { +func Bench9(erigonURL, gethURL string, needCompare bool) error { setRoutes(erigonURL, gethURL) var client = &http.Client{ Timeout: time.Second * 600, @@ -26,12 +26,10 @@ func Bench9(erigonURL, gethURL string, needCompare bool) { var blockNumber EthBlockNumber res = reqGen.Erigon("eth_blockNumber", reqGen.blockNumber(), &blockNumber) if res.Err != nil { - fmt.Printf("Could not get block number: %v\n", res.Err) - return + return fmt.Errorf("Could not get block number: %v\n", res.Err) } if blockNumber.Error != nil { - fmt.Printf("Error getting block number: %d %s\n", blockNumber.Error.Code, blockNumber.Error.Message) - return + return fmt.Errorf("Error getting block number: %d %s\n", blockNumber.Error.Code, blockNumber.Error.Message) } lastBlock := blockNumber.Number fmt.Printf("Last block: %d\n", lastBlock) @@ -46,8 +44,7 @@ func Bench9(erigonURL, gethURL string, needCompare bool) { res = reqGen.Erigon("debug_accountRange", reqGen.accountRange(bn, page, 256), &sr) if res.Err != nil { - fmt.Printf("Could not get accountRange (Erigon): %v\n", res.Err) - return + return fmt.Errorf("Could not get accountRange (Erigon): %v\n", res.Err) } if sr.Error != nil { @@ -74,8 +71,7 @@ func Bench9(erigonURL, gethURL string, needCompare bool) { } res = reqGen.Erigon("eth_getProof", reqGen.getProof(bn, address, storageList), &proof) if res.Err != nil { - fmt.Printf("Could not get getProof (Erigon): %v\n", res.Err) - return + return fmt.Errorf("Could not get getProof (Erigon): %v\n", res.Err) } if proof.Error != nil { fmt.Printf("Error getting getProof (Erigon): %d %s\n", proof.Error.Code, proof.Error.Message) @@ -86,8 +82,7 @@ func Bench9(erigonURL, gethURL string, needCompare bool) { reqGen.reqID++ res = reqGen.Geth("eth_getProof", reqGen.getProof(bn, address, storageList), &gethProof) if res.Err != nil { - fmt.Printf("Could not get getProof (geth): %v\n", res.Err) - return + return fmt.Errorf("Could not get getProof (geth): %v\n", res.Err) } if gethProof.Error != nil { fmt.Printf("Error getting getProof (geth): %d %s\n", gethProof.Error.Code, gethProof.Error.Message) @@ -100,4 +95,5 @@ func Bench9(erigonURL, gethURL string, needCompare bool) { } } } + return nil } diff --git a/cmd/rpctest/rpctest/bench_ethgetblockbynumber.go b/cmd/rpctest/rpctest/bench_ethgetblockbynumber.go new file mode 100644 index 00000000000..28988042f6e --- /dev/null +++ b/cmd/rpctest/rpctest/bench_ethgetblockbynumber.go @@ -0,0 +1,108 @@ +package rpctest + +import ( + "bufio" + "fmt" + "net/http" + "os" + "time" +) + +// BenchEthGetBlockByNumber compares response of Erigon with Geth +// but also can be used for comparing RPCDaemon with Geth or infura +// parameters: +// needCompare - if false - doesn't call Erigon and doesn't compare responses +// +// false value - to generate vegeta files, it's faster but we can generate vegeta files for Geth and Erigon +// recordFile stores all eth_call returned with success +// errorFile stores information when erigon and geth doesn't return same data +func BenchEthGetBlockByNumber2(erigonURL, gethURL string, needCompare, latest bool, blockFrom, blockTo uint64, recordFileName string, errorFileName string) error { + setRoutes(erigonURL, gethURL) + var client = &http.Client{ + Timeout: time.Second * 600, + } + + var rec *bufio.Writer + var errs *bufio.Writer + var resultsCh chan CallResult = nil + var nBlocks = 0 + + if errorFileName != "" { + f, err := os.Create(errorFileName) + if err != nil { + return fmt.Errorf("Cannot create file %s for errorFile: %v\n", errorFileName, err) + } + defer f.Close() + errs = bufio.NewWriter(f) + defer errs.Flush() + } + + if recordFileName != "" { + frec, errRec := os.Create(recordFileName) + if errRec != nil { + return fmt.Errorf("Cannot create file %s for errorFile: %v\n", recordFileName, errRec) + } + defer frec.Close() + rec = bufio.NewWriter(frec) + defer rec.Flush() + } + + if !needCompare { + resultsCh = make(chan CallResult, 1000) + defer close(resultsCh) + go vegetaWrite(true, []string{"eth_getBlockByNumber"}, resultsCh) + } + var res CallResult + + reqGen := &RequestGenerator{ + client: client, + } + + reqGen.reqID++ + + for bn := blockFrom; bn <= blockTo; bn++ { + reqGen.reqID++ + var b EthBlockByNumber + res = reqGen.Erigon("eth_getBlockByNumber", reqGen.getBlockByNumber(bn, true /* withTxs */), &b) + if res.Err != nil { + return fmt.Errorf("Could not retrieve block (Erigon) %d: %v\n", bn, res.Err) + } + + if b.Error != nil { + return fmt.Errorf("Error retrieving block (Erigon): %d %s\n", b.Error.Code, b.Error.Message) + } + + if needCompare { + var bg EthBlockByNumber + res = reqGen.Geth("eth_getBlockByNumber", reqGen.getBlockByNumber(bn, true /* withTxs */), &bg) + if res.Err != nil { + return fmt.Errorf("Could not retrieve block (geth) %d: %v\n", bn, res.Err) + } + if bg.Error != nil { + return fmt.Errorf("Error retrieving block (geth): %d %s\n", bg.Error.Code, bg.Error.Message) + } + if !compareBlocks(&b, &bg) { + if rec != nil { + fmt.Fprintf(rec, "Block difference for block=%d\n", bn) + rec.Flush() + continue + } else { + return fmt.Errorf("Block difference for %d\n", bn) + } + } + } + + reqGen.reqID++ + nBlocks++ + var request string + request = reqGen.getBlockByNumber(bn, true) + errCtx := fmt.Sprintf(" bn=%d ", bn) + + if err := requestAndCompare(request, "eth_getBlockByNumber", errCtx, reqGen, needCompare, rec, errs, resultsCh); err != nil { + return err + } + + fmt.Println("\nProcessed Blocks: ", nBlocks) + } + return nil +} diff --git a/cmd/rpctest/rpctest/bench_tracecallmany.go b/cmd/rpctest/rpctest/bench_tracecallmany.go index a3599af7c0c..ba2294e9e6d 100644 --- a/cmd/rpctest/rpctest/bench_tracecallmany.go +++ b/cmd/rpctest/rpctest/bench_tracecallmany.go @@ -3,14 +3,13 @@ package rpctest import ( "bufio" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "net/http" "os" "time" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/hexutility" - - "github.com/ledgerwatch/erigon/common/hexutil" ) // BenchTraceCallMany compares response of Erigon with Geth diff --git a/cmd/rpctest/rpctest/request_generator.go b/cmd/rpctest/rpctest/request_generator.go index 4d7ae95b047..67c699529f9 100644 --- a/cmd/rpctest/rpctest/request_generator.go +++ b/cmd/rpctest/rpctest/request_generator.go @@ -3,6 +3,7 @@ package rpctest import ( "encoding/base64" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "net/http" "strings" "time" @@ -11,8 +12,6 @@ import ( libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/hexutility" - - "github.com/ledgerwatch/erigon/common/hexutil" ) type CallResult struct { diff --git a/cmd/rpctest/rpctest/type.go b/cmd/rpctest/rpctest/type.go index bfdcbcc5050..61368932762 100644 --- a/cmd/rpctest/rpctest/type.go +++ b/cmd/rpctest/rpctest/type.go @@ -3,10 +3,11 @@ package rpctest import ( "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" + libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/hexutility" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core/state" ) diff --git a/cmd/sentinel/cli/cliSettings.go b/cmd/sentinel/cli/cliSettings.go index 74f3664f5a5..fc0c076fb36 100644 --- a/cmd/sentinel/cli/cliSettings.go +++ b/cmd/sentinel/cli/cliSettings.go @@ -7,17 +7,17 @@ import ( "strings" "time" + "github.com/ledgerwatch/erigon/cl/clparams" + "github.com/ledgerwatch/erigon/cl/phase1/core/state" + common2 "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/datadir" - "github.com/ledgerwatch/erigon/cl/phase1/core/rawdb" - "github.com/ledgerwatch/erigon/cl/phase1/core/state" "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/cmd/utils" "github.com/urfave/cli/v2" - "github.com/ledgerwatch/erigon/cl/clparams" "github.com/ledgerwatch/erigon/cmd/sentinel/cli/flags" "github.com/ledgerwatch/erigon/turbo/logging" @@ -28,7 +28,6 @@ type ConsensusClientCliCfg struct { GenesisCfg *clparams.GenesisConfig BeaconCfg *clparams.BeaconChainConfig NetworkCfg *clparams.NetworkConfig - BeaconDataCfg *rawdb.BeaconDataConfig Port uint `json:"port"` Addr string `json:"address"` ServerAddr string `json:"server_addr"` @@ -131,7 +130,6 @@ func SetupConsensusClientCfg(ctx *cli.Context) (*ConsensusClientCliCfg, error) { cfg.CheckpointUri = clparams.GetCheckpointSyncEndpoint(cfg.NetworkType) } cfg.Chaindata = ctx.String(flags.ChaindataFlag.Name) - cfg.BeaconDataCfg = rawdb.BeaconDataConfigurations[ctx.String(flags.BeaconDBModeFlag.Name)] // Process bootnodes if ctx.String(flags.BootnodesFlag.Name) != "" { cfg.NetworkCfg.BootNodes = common2.CliString2Array(ctx.String(flags.BootnodesFlag.Name)) diff --git a/cmd/sentinel/main.go b/cmd/sentinel/main.go index ec604b71124..47481917632 100644 --- a/cmd/sentinel/main.go +++ b/cmd/sentinel/main.go @@ -16,6 +16,8 @@ package main import ( "context" "fmt" + "github.com/ledgerwatch/erigon/cl/sentinel" + "github.com/ledgerwatch/erigon/cl/sentinel/service" "os" "github.com/ledgerwatch/log/v3" @@ -23,8 +25,6 @@ import ( lcCli "github.com/ledgerwatch/erigon/cmd/sentinel/cli" "github.com/ledgerwatch/erigon/cmd/sentinel/cli/flags" - "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel" - "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel/service" sentinelapp "github.com/ledgerwatch/erigon/turbo/app" ) diff --git a/cmd/sentinel/sentinel/communication/send_request.go b/cmd/sentinel/sentinel/communication/send_request.go deleted file mode 100644 index 8561a051d6a..00000000000 --- a/cmd/sentinel/sentinel/communication/send_request.go +++ /dev/null @@ -1,80 +0,0 @@ -package communication - -import ( - "context" - "fmt" - "io" - "time" - - "github.com/libp2p/go-libp2p/core/host" - "github.com/libp2p/go-libp2p/core/network" - "github.com/libp2p/go-libp2p/core/peer" - "github.com/libp2p/go-libp2p/core/protocol" -) - -var NoRequestHandlers = map[string]bool{ - MetadataProtocolV1: true, - MetadataProtocolV2: true, -} - -type response struct { - data []byte - code byte - err error -} - -func SendRequestRawToPeer(ctx context.Context, host host.Host, data []byte, topic string, peerId peer.ID) ([]byte, byte, error) { - nctx, cn := context.WithTimeout(ctx, 5*time.Second) - defer cn() - stream, err := writeRequestRaw(host, nctx, data, peerId, topic) - if err != nil { - return nil, 189, err - } - defer stream.Close() - - retryVerifyTicker := time.NewTicker(10 * time.Millisecond) - defer retryVerifyTicker.Stop() - - res := verifyResponse(stream, peerId) - for res.err != nil && res.err == network.ErrReset { - select { - case <-retryVerifyTicker.C: - res = verifyResponse(stream, peerId) - case <-nctx.Done(): - stream.Reset() - return nil, 0, nctx.Err() - } - } - - return res.data, res.code, res.err - -} - -func writeRequestRaw(host host.Host, ctx context.Context, data []byte, peerId peer.ID, topic string) (network.Stream, error) { - stream, err := host.NewStream(ctx, peerId, protocol.ID(topic)) - if err != nil { - return nil, fmt.Errorf("failed to begin stream, err=%s", err) - } - - if _, ok := NoRequestHandlers[topic]; !ok { - if _, err := stream.Write(data); err != nil { - return nil, err - } - } - - return stream, stream.CloseWrite() -} - -func verifyResponse(stream network.Stream, peerId peer.ID) (resp response) { - code := make([]byte, 1) - _, resp.err = stream.Read(code) - if resp.err != nil { - return - } - resp.code = code[0] - resp.data, resp.err = io.ReadAll(stream) - if resp.err != nil { - return - } - return -} diff --git a/cmd/sentinel/sentinel/gossip.go b/cmd/sentinel/sentinel/gossip.go deleted file mode 100644 index 2f38d3b7836..00000000000 --- a/cmd/sentinel/sentinel/gossip.go +++ /dev/null @@ -1,111 +0,0 @@ -/* - Copyright 2022 Erigon-Lightclient contributors - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -package sentinel - -import ( - "context" - "errors" - "fmt" - "sync" - - "github.com/ledgerwatch/log/v3" - pubsub "github.com/libp2p/go-libp2p-pubsub" - "github.com/libp2p/go-libp2p/core/peer" -) - -// GossipSubscription abstracts a gossip subscription to write decoded structs. -type GossipSubscription struct { - gossip_topic GossipTopic - host peer.ID - ch chan *pubsub.Message - ctx context.Context - - topic *pubsub.Topic - sub *pubsub.Subscription - - cf context.CancelFunc - rf pubsub.RelayCancelFunc - - setup sync.Once - stopCh chan struct{} -} - -func (sub *GossipSubscription) Listen() (err error) { - sub.setup.Do(func() { - sub.stopCh = make(chan struct{}, 3) - sub.sub, err = sub.topic.Subscribe() - if err != nil { - err = fmt.Errorf("failed to begin topic %s subscription, err=%w", sub.topic.String(), err) - return - } - var sctx context.Context - sctx, sub.cf = context.WithCancel(sub.ctx) - go sub.run(sctx, sub.sub, sub.sub.Topic()) - }) - return nil -} - -// calls the cancel func for the subscriber and closes the topic and sub -func (s *GossipSubscription) Close() { - s.stopCh <- struct{}{} - if s.cf != nil { - s.cf() - } - if s.rf != nil { - s.rf() - } - if s.sub != nil { - s.sub.Cancel() - s.sub = nil - } - if s.topic != nil { - s.topic.Close() - s.topic = nil - } -} - -// this is a helper to begin running the gossip subscription. -// function should not be used outside of the constructor for gossip subscription -func (s *GossipSubscription) run(ctx context.Context, sub *pubsub.Subscription, topic string) { - defer func() { - if r := recover(); r != nil { - log.Error("[Sentinel Gossip] Message Handler Crashed", "err", r) - } - }() - for { - select { - case <-ctx.Done(): - return - case <-s.stopCh: - return - default: - msg, err := sub.Next(ctx) - if err != nil { - if errors.Is(err, context.Canceled) { - return - } - log.Warn("[Sentinel] fail to decode gossip packet", "err", err, "topic", topic) - return - } - if msg.GetFrom() == s.host { - continue - } - s.ch <- msg - } - } -} - -func (g *GossipSubscription) Publish(data []byte) error { - return g.topic.Publish(g.ctx, data) -} diff --git a/cmd/sentinel/sentinel/peers/manager.go b/cmd/sentinel/sentinel/peers/manager.go deleted file mode 100644 index 90fd0619aff..00000000000 --- a/cmd/sentinel/sentinel/peers/manager.go +++ /dev/null @@ -1,139 +0,0 @@ -package peers - -import ( - "context" - "sync" - "time" - - "github.com/ledgerwatch/erigon/cl/phase1/core/state/lru" - "github.com/ledgerwatch/erigon/metrics" - "github.com/libp2p/go-libp2p/core/host" - "github.com/libp2p/go-libp2p/core/peer" -) - -const ( - maxBadPeers = 50000 - maxPeerRecordSize = 1000 - DefaultMaxPeers = 33 - MaxBadResponses = 50 -) - -func newPeer() *Peer { - return &Peer{ - lastTouched: time.Now(), - working: make(chan struct{}), - } -} - -type Manager struct { - host host.Host - peers *lru.Cache[peer.ID, *Peer] - peerTimeout time.Duration - - mu sync.Mutex -} - -func NewManager(ctx context.Context, host host.Host) *Manager { - c, err := lru.New[peer.ID, *Peer]("beacon_peer_manager", 500) - if err != nil { - panic(err) - } - m := &Manager{ - peerTimeout: 8 * time.Hour, - peers: c, - host: host, - } - go m.run(ctx) - return m -} - -func (m *Manager) getPeer(id peer.ID) (peer *Peer) { - m.mu.Lock() - p, ok := m.peers.Get(id) - if !ok { - p = &Peer{ - pid: id, - working: make(chan struct{}, 1), - m: m, - Penalties: 0, - Banned: false, - } - m.peers.Add(id, p) - } - p.lastTouched = time.Now() - m.mu.Unlock() - return p -} -func (m *Manager) CtxPeer(ctx context.Context, id peer.ID, fn func(peer *Peer)) error { - p := m.getPeer(id) - select { - case p.working <- struct{}{}: - case <-ctx.Done(): - return ctx.Err() - } - fn(p) - <-p.working - return nil -} - -func (m *Manager) TryPeer(id peer.ID, fn func(peer *Peer, ok bool)) { - p := m.getPeer(id) - select { - case p.working <- struct{}{}: - default: - fn(nil, false) - return - } - fn(p, true) - <-p.working -} - -// WithPeer will get the peer with id and run your lambda with it. it will update the last queried time -// It will do all synchronization and so you can use the peer thread safe inside -func (m *Manager) WithPeer(id peer.ID, fn func(peer *Peer)) { - if fn == nil { - return - } - p := m.getPeer(id) - p.working <- struct{}{} - defer func() { - <-p.working - }() - fn(p) -} - -func (m *Manager) run(ctx context.Context) { - m1 := time.NewTicker(1 * time.Hour) - for { - select { - case <-m1.C: - m.gc() - case <-ctx.Done(): - m1.Stop() - return - } - } -} - -// any extra GC policies that the lru does not suffice. -// maybe we dont need -func (m *Manager) gc() { - m.mu.Lock() - defer m.mu.Unlock() - t := metrics.NewHistTimer("beacon_peer_manager_gc_time") - defer t.PutSince() - deleted := 0 - saw := 0 - n := time.Now() - for _, k := range m.peers.Keys() { - v, ok := m.peers.Get(k) - if !ok { - continue - } - saw = saw + 1 - if n.Sub(v.lastTouched) > m.peerTimeout { - deleted = deleted + 1 - m.peers.Remove(k) - } - } -} diff --git a/cmd/sentinel/sentinel/peers/peer.go b/cmd/sentinel/sentinel/peers/peer.go deleted file mode 100644 index 62cfbbbfb69..00000000000 --- a/cmd/sentinel/sentinel/peers/peer.go +++ /dev/null @@ -1,114 +0,0 @@ -package peers - -import ( - "strings" - "time" - - "github.com/ledgerwatch/log/v3" - "github.com/libp2p/go-libp2p/core/peer" -) - -// Record Peer data. -type Peer struct { - Penalties int - Banned bool - InRequest bool - - // request info - lastRequest time.Time - successCount int - useCount int - // gc data - lastTouched time.Time - // acts as the mutex. channel used to avoid use of TryLock - working chan struct{} - // peer id - pid peer.ID - busy bool - // backref to the manager that owns this peer - m *Manager -} - -func (p *Peer) ID() peer.ID { - return p.pid -} -func (p *Peer) Penalize() { - log.Trace("[Sentinel Peers] peer penalized", "peer-id", p.pid) - p.Penalties++ -} - -func (p *Peer) Forgive() { - log.Trace("[Sentinel Peers] peer forgiven", "peer-id", p.pid) - if p.Penalties > 0 { - p.Penalties-- - } -} - -func (p *Peer) MarkUsed() { - p.useCount++ - p.busy = true - log.Trace("[Sentinel Peers] peer used", "peer-id", p.pid, "uses", p.useCount) - p.lastRequest = time.Now() -} - -func (p *Peer) MarkUnused() { - p.busy = false -} - -func (p *Peer) MarkReplied() { - p.successCount++ - log.Trace("[Sentinel Peers] peer replied", "peer-id", p.pid, "uses", p.useCount, "success", p.successCount) -} - -func (p *Peer) IsAvailable() (available bool) { - if p.Banned { - return false - } - if p.Penalties > MaxBadResponses { - return false - } - - return !p.busy -} - -func (p *Peer) IsBad() (bad bool) { - if p.Banned { - bad = true - return - } - bad = p.Penalties > MaxBadResponses - return -} - -var skipReasons = []string{ - "bad handshake", - "context", - "security protocol", - "connect:", - "dial backoff", -} - -func anySetInString(set []string, in string) bool { - for _, v := range skipReasons { - if strings.Contains(in, v) { - return true - } - } - return false -} - -func (p *Peer) Disconnect(reason ...string) { - rzn := strings.Join(reason, " ") - if !anySetInString(skipReasons, rzn) { - log.Trace("[Sentinel Peers] disconnecting from peer", "peer-id", p.pid, "reason", strings.Join(reason, " ")) - } - p.m.host.Peerstore().RemovePeer(p.pid) - p.m.host.Network().ClosePeer(p.pid) - p.Penalties = 0 -} -func (p *Peer) Ban(reason ...string) { - log.Trace("[Sentinel Peers] bad peers has been banned", "peer-id", p.pid, "reason", strings.Join(reason, " ")) - p.Banned = true - p.Disconnect(reason...) - return -} diff --git a/cmd/sentry/main.go b/cmd/sentry/main.go index 146ee737baf..abd86dca1a9 100644 --- a/cmd/sentry/main.go +++ b/cmd/sentry/main.go @@ -8,9 +8,9 @@ import ( "github.com/ledgerwatch/erigon-lib/common/datadir" "github.com/spf13/cobra" - "github.com/ledgerwatch/erigon/cmd/sentry/sentry" "github.com/ledgerwatch/erigon/cmd/utils" "github.com/ledgerwatch/erigon/common/paths" + "github.com/ledgerwatch/erigon/p2p/sentry" "github.com/ledgerwatch/erigon/turbo/debug" "github.com/ledgerwatch/erigon/turbo/logging" node2 "github.com/ledgerwatch/erigon/turbo/node" diff --git a/cmd/state/exec3/state_recon.go b/cmd/state/exec3/state_recon.go index e34e12fe1b6..9adf47df366 100644 --- a/cmd/state/exec3/state_recon.go +++ b/cmd/state/exec3/state_recon.go @@ -17,7 +17,6 @@ import ( libstate "github.com/ledgerwatch/erigon-lib/state" "github.com/ledgerwatch/erigon/cmd/state/exec22" - "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/consensus" "github.com/ledgerwatch/erigon/core" "github.com/ledgerwatch/erigon/core/state" @@ -150,7 +149,7 @@ func (fw *FillWorker) FillCode(codeCollector, plainContractCollector *etl.Collec copy(compositeKey, key) if len(val) > 0 { - codeHash, err := common.HashData(val) + codeHash, err := libcommon.HashData(val) if err != nil { return err } diff --git a/cmd/state/verify/check_indexes.go b/cmd/state/verify/check_indexes.go index c3966ffd365..bc13606f8d4 100644 --- a/cmd/state/verify/check_indexes.go +++ b/cmd/state/verify/check_indexes.go @@ -3,13 +3,13 @@ package verify import ( "context" "fmt" + "github.com/ledgerwatch/erigon-lib/kv/dbutils" "time" "github.com/ledgerwatch/erigon-lib/kv/bitmapdb" "github.com/ledgerwatch/erigon-lib/kv/mdbx" "github.com/ledgerwatch/erigon-lib/kv/temporal/historyv2" "github.com/ledgerwatch/erigon/common" - "github.com/ledgerwatch/erigon/common/dbutils" ) func CheckIndex(ctx context.Context, chaindata string, changeSetBucket string, indexBucket string) error { diff --git a/cmd/utils/flags.go b/cmd/utils/flags.go index 38e93e2ca78..a8236b51694 100644 --- a/cmd/utils/flags.go +++ b/cmd/utils/flags.go @@ -26,7 +26,11 @@ import ( "strconv" "strings" + "github.com/ledgerwatch/erigon/cl/clparams" + "github.com/c2h5oh/datasize" + "github.com/ledgerwatch/erigon-lib/chain/networkname" + "github.com/ledgerwatch/erigon-lib/chain/snapcfg" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/cmp" "github.com/ledgerwatch/erigon-lib/common/datadir" @@ -40,7 +44,6 @@ import ( "github.com/spf13/pflag" "github.com/urfave/cli/v2" - "github.com/ledgerwatch/erigon/cl/clparams" "github.com/ledgerwatch/erigon/cmd/downloader/downloadernat" "github.com/ledgerwatch/erigon/cmd/utils/flags" common2 "github.com/ledgerwatch/erigon/common" @@ -56,7 +59,6 @@ import ( "github.com/ledgerwatch/erigon/p2p/nat" "github.com/ledgerwatch/erigon/p2p/netutil" "github.com/ledgerwatch/erigon/params" - "github.com/ledgerwatch/erigon/params/networkname" ) // These are all the command line flags we support. @@ -303,7 +305,12 @@ var ( } HTTPEnabledFlag = cli.BoolFlag{ Name: "http", - Usage: "HTTP-RPC server (enabled by default). Use --http=false to disable it", + Usage: "JSON-RPC server (enabled by default). Use --http=false to disable it", + Value: true, + } + HTTPServerEnabledFlag = cli.BoolFlag{ + Name: "http.enabled", + Usage: "JSON-RPC HTTP server (enabled by default). Use --http.enabled=false to disable it", Value: true, } HTTPListenAddrFlag = cli.StringFlag{ @@ -387,7 +394,7 @@ var ( DBReadConcurrencyFlag = cli.IntFlag{ Name: "db.read.concurrency", Usage: "Does limit amount of parallel db reads. Default: equal to GOMAXPROCS (or number of CPU)", - Value: cmp.Max(10, runtime.GOMAXPROCS(-1)*8), + Value: cmp.Min(cmp.Max(10, runtime.GOMAXPROCS(-1)*16), 9_000), } RpcAccessListFlag = cli.StringFlag{ Name: "rpc.accessList", @@ -831,9 +838,21 @@ var ( SilkwormPathFlag = cli.StringFlag{ Name: "silkworm.path", - Usage: "Path to the silkworm_api library (enables embedded Silkworm execution)", + Usage: "Path to the Silkworm library", Value: "", } + SilkwormExecutionFlag = cli.BoolFlag{ + Name: "silkworm.exec", + Usage: "Enable Silkworm block execution", + } + SilkwormRpcDaemonFlag = cli.BoolFlag{ + Name: "silkworm.rpcd", + Usage: "Enable embedded Silkworm RPC daemon", + } + SilkwormSentryFlag = cli.BoolFlag{ + Name: "silkworm.sentry", + Usage: "Enable embedded Silkworm Sentry service", + } ) var MetricFlags = []cli.Flag{&MetricsEnabledFlag, &MetricsHTTPFlag, &MetricsPortFlag} @@ -1024,6 +1043,7 @@ func NewP2PConfig( return nil, fmt.Errorf("invalid nat option %s: %w", natSetting, err) } cfg.NAT = natif + cfg.NATSpec = natSetting return cfg, nil } @@ -1072,11 +1092,13 @@ func setListenAddress(ctx *cli.Context, cfg *p2p.Config) { // setNAT creates a port mapper from command line flags. func setNAT(ctx *cli.Context, cfg *p2p.Config) { if ctx.IsSet(NATFlag.Name) { - natif, err := nat.Parse(ctx.String(NATFlag.Name)) + natSetting := ctx.String(NATFlag.Name) + natif, err := nat.Parse(natSetting) if err != nil { Fatalf("Option %s: %v", NATFlag.Name, err) } cfg.NAT = natif + cfg.NATSpec = natSetting } } @@ -1154,7 +1176,6 @@ func SetP2PConfig(ctx *cli.Context, cfg *p2p.Config, nodeName, datadir string, l } ethPeers := cfg.MaxPeers - cfg.Name = nodeName logger.Info("Maximum peer count", "ETH", ethPeers, "total", cfg.MaxPeers) if netrestrict := ctx.String(NetrestrictFlag.Name); netrestrict != "" { @@ -1453,10 +1474,12 @@ func setWhitelist(ctx *cli.Context, cfg *ethconfig.Config) { } func setSilkworm(ctx *cli.Context, cfg *ethconfig.Config) { - cfg.SilkwormEnabled = ctx.IsSet(SilkwormPathFlag.Name) - if cfg.SilkwormEnabled { - cfg.SilkwormPath = ctx.String(SilkwormPathFlag.Name) + cfg.SilkwormPath = ctx.String(SilkwormPathFlag.Name) + if ctx.IsSet(SilkwormExecutionFlag.Name) { + cfg.SilkwormExecution = ctx.Bool(SilkwormExecutionFlag.Name) } + cfg.SilkwormRpcDaemon = ctx.Bool(SilkwormRpcDaemonFlag.Name) + cfg.SilkwormSentry = ctx.Bool(SilkwormSentryFlag.Name) } // CheckExclusive verifies that only a single instance of the provided flags was @@ -1536,7 +1559,12 @@ func SetEthConfig(ctx *cli.Context, nodeConfig *nodecfg.Config, cfg *ethconfig.C } logger.Info("torrent verbosity", "level", lvl.LogString()) version := "erigon: " + params.VersionWithCommit(params.GitCommit) - cfg.Downloader, err = downloadercfg2.New(cfg.Dirs, version, lvl, downloadRate, uploadRate, ctx.Int(TorrentPortFlag.Name), ctx.Int(TorrentConnsPerFileFlag.Name), ctx.Int(TorrentDownloadSlotsFlag.Name), ctx.StringSlice(TorrentDownloadSlotsFlag.Name), ctx.String(WebSeedsFlag.Name)) + chain := ctx.String(ChainFlag.Name) + webseedsList := libcommon.CliString2Array(ctx.String(WebSeedsFlag.Name)) + if known, ok := snapcfg.KnownWebseeds[chain]; ok { + webseedsList = append(webseedsList, known...) + } + cfg.Downloader, err = downloadercfg2.New(cfg.Dirs, version, lvl, downloadRate, uploadRate, ctx.Int(TorrentPortFlag.Name), ctx.Int(TorrentConnsPerFileFlag.Name), ctx.Int(TorrentDownloadSlotsFlag.Name), ctx.StringSlice(TorrentDownloadSlotsFlag.Name), webseedsList, chain) if err != nil { panic(err) } @@ -1564,7 +1592,6 @@ func SetEthConfig(ctx *cli.Context, nodeConfig *nodecfg.Config, cfg *ethconfig.C setSilkworm(ctx, cfg) cfg.Ethstats = ctx.String(EthStatsURLFlag.Name) - cfg.P2PEnabled = len(nodeConfig.P2P.SentryAddr) == 0 cfg.HistoryV3 = ctx.Bool(HistoryV3Flag.Name) if ctx.IsSet(NetworkIdFlag.Name) { cfg.NetworkID = ctx.Uint64(NetworkIdFlag.Name) @@ -1613,7 +1640,7 @@ func SetEthConfig(ctx *cli.Context, nodeConfig *nodecfg.Config, cfg *ethconfig.C } case networkname.DevChainName: if !ctx.IsSet(NetworkIdFlag.Name) { - cfg.NetworkID = 1337 + cfg.NetworkID = params.NetworkIDByChainName(chain) } // Create new developer account or reuse existing one diff --git a/cmd/verkle/main.go b/cmd/verkle/main.go index bed2e4e59c2..eb87ace88be 100644 --- a/cmd/verkle/main.go +++ b/cmd/verkle/main.go @@ -5,6 +5,7 @@ import ( "encoding/binary" "flag" "fmt" + "github.com/ledgerwatch/erigon/cl/utils" "os" "time" @@ -16,7 +17,6 @@ import ( "github.com/ledgerwatch/log/v3" "go.uber.org/zap/buffer" - "github.com/ledgerwatch/erigon/cl/utils" "github.com/ledgerwatch/erigon/cmd/verkle/verkletrie" "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/core/types/accounts" diff --git a/cmd/verkle/verkletrie/pedersen_hashstate.go b/cmd/verkle/verkletrie/pedersen_hashstate.go index f04561e4017..a56a15ac75b 100644 --- a/cmd/verkle/verkletrie/pedersen_hashstate.go +++ b/cmd/verkle/verkletrie/pedersen_hashstate.go @@ -234,7 +234,7 @@ func RegeneratePedersenCode(outTx kv.RwTx, readTx kv.Tx, workers uint64, verkleW jobs <- ®eneratePedersenCodeJob{ address: libcommon.BytesToAddress(k), - code: common.CopyBytes(code), + code: libcommon.CopyBytes(code), } select { case <-logInterval.C: diff --git a/cmd/verkle/verkletrie/verkle_tree_writer.go b/cmd/verkle/verkletrie/verkle_tree_writer.go index 08f1acaa282..cd7cde8024a 100644 --- a/cmd/verkle/verkletrie/verkle_tree_writer.go +++ b/cmd/verkle/verkletrie/verkle_tree_writer.go @@ -198,7 +198,7 @@ func (v *VerkleTreeWriter) CommitVerkleTreeFromScratch() (libcommon.Hash, error) if len(val) == 0 { return next(k, nil, nil) } - if err := root.InsertOrdered(common.CopyBytes(k), common.CopyBytes(val), func(node verkle.VerkleNode) { + if err := root.InsertOrdered(libcommon.CopyBytes(k), libcommon.CopyBytes(val), func(node verkle.VerkleNode) { rootHash := node.Commitment().Bytes() encodedNode, err := node.Serialize() if err != nil { @@ -256,7 +256,7 @@ func (v *VerkleTreeWriter) CommitVerkleTree(root libcommon.Hash) (libcommon.Hash logInterval := time.NewTicker(30 * time.Second) if err := v.collector.Load(v.db, kv.VerkleTrie, func(key []byte, value []byte, _ etl.CurrentTableReader, next etl.LoadNextFunc) error { if len(value) > 0 { - if err := rootNode.Insert(common.CopyBytes(key), common.CopyBytes(value), resolverFunc); err != nil { + if err := rootNode.Insert(libcommon.CopyBytes(key), libcommon.CopyBytes(value), resolverFunc); err != nil { return err } insertions++ diff --git a/cmd/verkle/verkletrie/workers.go b/cmd/verkle/verkletrie/workers.go index 5b3695ba6d5..6be189ae1f6 100644 --- a/cmd/verkle/verkletrie/workers.go +++ b/cmd/verkle/verkletrie/workers.go @@ -6,7 +6,6 @@ import ( "github.com/holiman/uint256" libcommon "github.com/ledgerwatch/erigon-lib/common" - "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/core/types/accounts" "github.com/ledgerwatch/erigon/turbo/trie/vtree" ) @@ -149,16 +148,16 @@ func pedersenCodeWorker(ctx context.Context, logPrefix string, in chan *regenera currentKey := vtree.GetTreeKeyCodeChunk(job.address[:], uint256.NewInt(0)) // Write code chunks for i := 0; i < len(chunkedCode); i += 32 { - chunks = append(chunks, common.CopyBytes(chunkedCode[i:i+32])) + chunks = append(chunks, libcommon.CopyBytes(chunkedCode[i:i+32])) if currentKey[31]+offset < currentKey[31] || offsetOverflow { currentKey = vtree.GetTreeKeyCodeChunk(job.address[:], uint256.NewInt(uint64(i)/32)) - chunkKeys = append(chunkKeys, common.CopyBytes(currentKey)) + chunkKeys = append(chunkKeys, libcommon.CopyBytes(currentKey)) offset = 1 offsetOverflow = false } else { - codeKey := common.CopyBytes(currentKey) + codeKey := libcommon.CopyBytes(currentKey) codeKey[31] += offset - chunkKeys = append(chunkKeys, common.CopyBytes(codeKey)) + chunkKeys = append(chunkKeys, libcommon.CopyBytes(codeKey)) offset += 1 // If offset overflows, handle it. offsetOverflow = offset == 0 @@ -207,8 +206,8 @@ func incrementalAccountWorker(ctx context.Context, logPrefix string, in chan *re currentKey := vtree.GetTreeKeyCodeChunk(job.address[:], uint256.NewInt(0)) // Write code chunks for i := 0; i < len(chunkedCode); i += 32 { - chunks = append(chunks, common.CopyBytes(chunkedCode[i:i+32])) - codeKey := common.CopyBytes(currentKey) + chunks = append(chunks, libcommon.CopyBytes(chunkedCode[i:i+32])) + codeKey := libcommon.CopyBytes(currentKey) if currentKey[31]+offset < currentKey[31] || offsetOverflow { currentKey = vtree.GetTreeKeyCodeChunk(job.address[:], uint256.NewInt(uint64(i)/32)) chunkKeys = append(chunkKeys, codeKey) diff --git a/common/bitutil/compress_test.go b/common/bitutil/compress_test.go index d797498ca3a..ab4bd7ebb74 100644 --- a/common/bitutil/compress_test.go +++ b/common/bitutil/compress_test.go @@ -18,12 +18,11 @@ package bitutil import ( "bytes" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "math/rand" "testing" "github.com/ledgerwatch/log/v3" - - "github.com/ledgerwatch/erigon/common/hexutil" ) // Tests that data bitset encoding and decoding works and is bijective. diff --git a/common/bytes.go b/common/bytes.go index 1c7662af796..728ccd0fe23 100644 --- a/common/bytes.go +++ b/common/bytes.go @@ -20,6 +20,7 @@ package common import ( "bytes" "encoding/hex" + "github.com/ledgerwatch/erigon-lib/common" ) // FromHex returns the bytes represented by the hexadecimal string s. @@ -31,18 +32,7 @@ func FromHex(s string) []byte { if len(s)%2 == 1 { s = "0" + s } - return Hex2Bytes(s) -} - -// CopyBytes returns an exact copy of the provided bytes. -func CopyBytes(b []byte) (copiedBytes []byte) { - if b == nil { - return nil - } - copiedBytes = make([]byte, len(b)) - copy(copiedBytes, b) - - return + return common.Hex2Bytes(s) } // has0xPrefix validates str begins with '0x' or '0X'. @@ -85,12 +75,6 @@ func RightPadBytes(slice []byte, l int) []byte { return padded } -// Hex2Bytes returns the bytes represented by the hexadecimal string str. -func Hex2Bytes(str string) []byte { - h, _ := hex.DecodeString(str) - return h -} - // LeftPadBytes zero-pads slice to the left up to length l. func LeftPadBytes(slice []byte, l int) []byte { if l <= len(slice) { diff --git a/common/bytes_test.go b/common/bytes_test.go index 0e3ec974ee4..723f23fa79c 100644 --- a/common/bytes_test.go +++ b/common/bytes_test.go @@ -18,13 +18,14 @@ package common import ( "bytes" + "github.com/ledgerwatch/erigon-lib/common" "testing" ) func TestCopyBytes(t *testing.T) { input := []byte{1, 2, 3, 4} - v := CopyBytes(input) + v := common.CopyBytes(input) if !bytes.Equal(v, []byte{1, 2, 3, 4}) { t.Fatal("not equal after copy") } diff --git a/common/changeset/storage_changeset_test.go b/common/changeset/storage_changeset_test.go index 02a5966a1eb..bed671ebbc5 100644 --- a/common/changeset/storage_changeset_test.go +++ b/common/changeset/storage_changeset_test.go @@ -3,6 +3,7 @@ package changeset import ( "bytes" "fmt" + "github.com/ledgerwatch/erigon-lib/kv/dbutils" "math/rand" "reflect" "strconv" @@ -16,7 +17,6 @@ import ( "github.com/stretchr/testify/require" "github.com/ledgerwatch/erigon/common" - "github.com/ledgerwatch/erigon/common/dbutils" ) const ( @@ -30,7 +30,7 @@ func getDefaultIncarnation() uint64 { return defaultIncarnation } func getRandomIncarnation() uint64 { return rand.Uint64() } func hashValueGenerator(j int) []byte { - val, _ := common.HashData([]byte("val" + strconv.Itoa(j))) + val, _ := libcommon.HashData([]byte("val" + strconv.Itoa(j))) return val.Bytes() } @@ -40,7 +40,7 @@ func emptyValueGenerator(j int) []byte { func getTestDataAtIndex(i, j int, inc uint64) []byte { address := libcommon.HexToAddress(fmt.Sprintf("0xBe828AD8B538D1D691891F6c725dEdc5989abBc%d", i)) - key, _ := common.HashData([]byte("key" + strconv.Itoa(j))) + key, _ := libcommon.HashData([]byte("key" + strconv.Itoa(j))) return dbutils.PlainGenerateCompositeStorageKey(address.Bytes(), inc, key.Bytes()) } @@ -317,8 +317,8 @@ func BenchmarkDecodeNewStorage(t *testing.B) { var err error for i := 0; i < numOfElements; i++ { address := []byte("0xa4e69cebbf4f8f3a1c6e493a6983d8a5879d22057a7c73b00e105d7c7e21ef" + strconv.Itoa(i)) - key, _ := common.HashData([]byte("key" + strconv.Itoa(i))) - val, _ := common.HashData([]byte("val" + strconv.Itoa(i))) + key, _ := libcommon.HashData([]byte("key" + strconv.Itoa(i))) + val, _ := libcommon.HashData([]byte("val" + strconv.Itoa(i))) err = ch.Add(dbutils.PlainGenerateCompositeStorageKey(address, rand.Uint64(), key[:]), val.Bytes()) if err != nil { t.Fatal(err) @@ -347,8 +347,8 @@ func BenchmarkEncodeNewStorage(t *testing.B) { var err error for i := 0; i < numOfElements; i++ { address := []byte("0xa4e69cebbf4f8f3a1c6e493a6983d8a5879d22057a7c73b00e105d7c7e21ef" + strconv.Itoa(i)) - key, _ := common.HashData([]byte("key" + strconv.Itoa(i))) - val, _ := common.HashData([]byte("val" + strconv.Itoa(i))) + key, _ := libcommon.HashData([]byte("key" + strconv.Itoa(i))) + val, _ := libcommon.HashData([]byte("val" + strconv.Itoa(i))) err = ch.Add(dbutils.PlainGenerateCompositeStorageKey(address, rand.Uint64(), key[:]), val.Bytes()) if err != nil { t.Fatal(err) diff --git a/common/hexutil/json_example_test.go b/common/hexutil/json_example_test.go deleted file mode 100644 index c256b412e39..00000000000 --- a/common/hexutil/json_example_test.go +++ /dev/null @@ -1,45 +0,0 @@ -// Copyright 2017 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -package hexutil_test - -import ( - "encoding/json" - "fmt" - - "github.com/ledgerwatch/erigon-lib/common/hexutility" -) - -type MyType [5]byte - -func (v *MyType) UnmarshalText(input []byte) error { - return hexutility.UnmarshalFixedText("MyType", input, v[:]) -} - -func (v MyType) String() string { - return hexutility.Bytes(v[:]).String() -} - -func ExampleUnmarshalFixedText() { - var v1, v2 MyType - fmt.Println("v1 error:", json.Unmarshal([]byte(`"0x01"`), &v1)) - fmt.Println("v2 error:", json.Unmarshal([]byte(`"0x0101010101"`), &v2)) - fmt.Println("v2:", v2) - // Output: - // v1 error: hex string has length 2, want 10 for MyType - // v2 error: - // v2: 0x0101010101 -} diff --git a/common/math/big_test.go b/common/math/big_test.go index c01863024ab..5ef9e13d3ba 100644 --- a/common/math/big_test.go +++ b/common/math/big_test.go @@ -19,10 +19,9 @@ package math import ( "bytes" "encoding/hex" + "github.com/ledgerwatch/erigon-lib/common" "math/big" "testing" - - "github.com/ledgerwatch/erigon/common" ) func TestHexOrDecimal256(t *testing.T) { diff --git a/common/paths/paths.go b/common/paths/paths.go index 7731ea5f953..51c0976350a 100644 --- a/common/paths/paths.go +++ b/common/paths/paths.go @@ -7,7 +7,7 @@ import ( "runtime" "strings" - "github.com/ledgerwatch/erigon/params/networkname" + "github.com/ledgerwatch/erigon-lib/chain/networkname" "github.com/ledgerwatch/log/v3" ) diff --git a/common/sorted.go b/common/sorted.go deleted file mode 100644 index fb2e665971f..00000000000 --- a/common/sorted.go +++ /dev/null @@ -1,27 +0,0 @@ -package common - -import ( - "golang.org/x/exp/constraints" - "golang.org/x/exp/slices" -) - -func SortedKeys[K constraints.Ordered, V any](m map[K]V) []K { - keys := make([]K, len(m)) - i := 0 - for k := range m { - keys[i] = k - i++ - } - slices.Sort(keys) - return keys -} - -func RemoveDuplicatesFromSorted[T constraints.Ordered](slice []T) []T { - for i := 1; i < len(slice); i++ { - if slice[i] == slice[i-1] { - slice = append(slice[:i], slice[i+1:]...) - i-- - } - } - return slice -} diff --git a/common/types.go b/common/types.go index e296ed887de..21d58434ccd 100644 --- a/common/types.go +++ b/common/types.go @@ -22,14 +22,13 @@ import ( "encoding/json" "errors" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "reflect" "strings" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/hexutility" "github.com/ledgerwatch/erigon-lib/common/length" - - "github.com/ledgerwatch/erigon/common/hexutil" ) // Lengths of hashes and addresses in bytes. diff --git a/consensus/aura/aura.go b/consensus/aura/aura.go index 47767c84860..23cb7947370 100644 --- a/consensus/aura/aura.go +++ b/consensus/aura/aura.go @@ -31,7 +31,6 @@ import ( libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/kv" - "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/consensus" "github.com/ledgerwatch/erigon/consensus/clique" "github.com/ledgerwatch/erigon/consensus/ethash" @@ -268,7 +267,7 @@ func NewAuRa(spec *chain.AuRaConfig, db kv.RwDB) (*AuRa, error) { StepDuration: auraParams.StepDurations[0], } durations = append(durations, durInfo) - times := common.SortedKeys(auraParams.StepDurations) + times := libcommon.SortedKeys(auraParams.StepDurations) for i := 1; i < len(auraParams.StepDurations); i++ { // skip first time := times[i] dur := auraParams.StepDurations[time] diff --git a/consensus/aura/contract_abi.go b/consensus/aura/contract_abi.go index 7f806f515d8..4fff77a2df3 100644 --- a/consensus/aura/contract_abi.go +++ b/consensus/aura/contract_abi.go @@ -9,7 +9,6 @@ import ( libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon/accounts/abi" - "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/consensus" "github.com/ledgerwatch/erigon/consensus/aura/contracts" ) @@ -112,7 +111,7 @@ func withdrawalAbi() abi.ABI { } func getCertifier(registrar libcommon.Address, syscall consensus.SystemCall) *libcommon.Address { - hashedKey, err := common.HashData([]byte("service_transaction_checker")) + hashedKey, err := libcommon.HashData([]byte("service_transaction_checker")) if err != nil { panic(err) } diff --git a/consensus/bor/bor.go b/consensus/bor/bor.go index 2ad78f6a120..b9434fa9e2b 100644 --- a/consensus/bor/bor.go +++ b/consensus/bor/bor.go @@ -17,9 +17,11 @@ import ( "github.com/google/btree" lru "github.com/hashicorp/golang-lru/arc/v2" + "github.com/ledgerwatch/erigon/eth/ethconfig/estimate" "github.com/ledgerwatch/log/v3" "github.com/xsleonard/go-merkle" "golang.org/x/crypto/sha3" + "golang.org/x/sync/errgroup" "github.com/ledgerwatch/erigon-lib/chain" libcommon "github.com/ledgerwatch/erigon-lib/common" @@ -570,11 +572,14 @@ func (c *Bor) verifyHeader(chain consensus.ChainHeaderReader, header *types.Head // Verify that the gas limit is <= 2^63-1 gasCap := uint64(0x7fffffffffffffff) - if header.GasLimit > gasCap { return fmt.Errorf("invalid gasLimit: have %v, max %v", header.GasLimit, gasCap) } + if header.WithdrawalsHash != nil { + return consensus.ErrUnexpectedWithdrawals + } + // All basic checks passed, verify cascading fields return c.verifyCascadingFields(chain, header, parents) } @@ -636,10 +641,6 @@ func (c *Bor) verifyCascadingFields(chain consensus.ChainHeaderReader, header *t return err } - if header.WithdrawalsHash != nil { - return consensus.ErrUnexpectedWithdrawals - } - if parent.Time+c.config.CalculatePeriod(number) > header.Time { return ErrInvalidTimestamp } @@ -737,10 +738,25 @@ func (c *Bor) initFrozenSnapshot(chain consensus.ChainHeaderReader, number uint6 c.logger.Info("Stored proposer snapshot to disk", "number", 0, "hash", hash) - initialHeaders := make([]*types.Header, 0, 128) + g := errgroup.Group{} + g.SetLimit(estimate.AlmostAllCPUs()) + defer g.Wait() + + batchSize := 128 // must be < inmemorySignatures + initialHeaders := make([]*types.Header, 0, batchSize) for i := uint64(1); i <= number; i++ { header := chain.GetHeaderByNumber(i) + { + // `snap.apply` bottleneck - is recover of signer. + // to speedup: recover signer in background goroutines and save in `sigcache` + // `batchSize` < `inmemorySignatures`: means all current batch will fit in cache - and `snap.apply` will find it there. + snap := snap + g.Go(func() error { + _, _ = ecrecover(header, snap.sigcache, snap.config) + return nil + }) + } initialHeaders = append(initialHeaders, header) if len(initialHeaders) == cap(initialHeaders) { snap, err = snap.apply(initialHeaders, c.logger) @@ -1030,10 +1046,12 @@ func (c *Bor) Finalize(config *chain.Config, header *types.Header, state *state. txs types.Transactions, uncles []*types.Header, r types.Receipts, withdrawals []*types.Withdrawal, chain consensus.ChainReader, syscall consensus.SystemCall, logger log.Logger, ) (types.Transactions, types.Receipts, error) { - var err error - headerNumber := header.Number.Uint64() + if withdrawals != nil || header.WithdrawalsHash != nil { + return nil, nil, consensus.ErrUnexpectedWithdrawals + } + if isSprintStart(headerNumber, c.config.CalculateSprint(headerNumber)) { cx := statefull.ChainContext{Chain: chain, Bor: c} // check and commit span @@ -1044,14 +1062,14 @@ func (c *Bor) Finalize(config *chain.Config, header *types.Header, state *state. if c.blockReader != nil { // commit states - if err = c.CommitStates(state, header, cx, syscall); err != nil { + if err := c.CommitStates(state, header, cx, syscall); err != nil { c.logger.Error("Error while committing states", "err", err) return nil, types.Receipts{}, err } } } - if err = c.changeContractCodeIfNeeded(headerNumber, state); err != nil { + if err := c.changeContractCodeIfNeeded(headerNumber, state); err != nil { c.logger.Error("Error changing contract code", "err", err) return nil, types.Receipts{}, err } @@ -1093,6 +1111,11 @@ func (c *Bor) FinalizeAndAssemble(chainConfig *chain.Config, header *types.Heade // stateSyncData := []*types.StateSyncData{} headerNumber := header.Number.Uint64() + + if withdrawals != nil || header.WithdrawalsHash != nil { + return nil, nil, nil, consensus.ErrUnexpectedWithdrawals + } + if isSprintStart(headerNumber, c.config.CalculateSprint(headerNumber)) { cx := statefull.ChainContext{Chain: chain, Bor: c} @@ -1191,12 +1214,6 @@ func (c *Bor) Seal(chain consensus.ChainHeaderReader, block *types.Block, result // wiggle was already accounted for in header.Time, this is just for logging wiggle := time.Duration(successionNumber) * time.Duration(c.config.CalculateBackupMultiplier(number)) * time.Second - // temp for testing - if wiggle > 0 { - wiggle = 500 * time.Millisecond - } - // temp for testing - // Sign all the things! sighash, err := signFn(signer, accounts.MimetypeBor, BorRLP(header, c.config)) if err != nil { diff --git a/consensus/bor/finality/bor_verifier.go b/consensus/bor/finality/bor_verifier.go index b96ed42ba6e..f78f3532e6e 100644 --- a/consensus/bor/finality/bor_verifier.go +++ b/consensus/bor/finality/bor_verifier.go @@ -5,11 +5,11 @@ import ( "context" "errors" "fmt" + "github.com/ledgerwatch/erigon-lib/metrics" "github.com/ledgerwatch/erigon/consensus/bor/finality/generics" "github.com/ledgerwatch/erigon/consensus/bor/finality/whitelist" "github.com/ledgerwatch/erigon/core/rawdb" - "github.com/ledgerwatch/erigon/metrics" "github.com/ledgerwatch/log/v3" ) diff --git a/consensus/bor/finality/whitelist/checkpoint.go b/consensus/bor/finality/whitelist/checkpoint.go index 5e23eee398c..1f7a1c12c9b 100644 --- a/consensus/bor/finality/whitelist/checkpoint.go +++ b/consensus/bor/finality/whitelist/checkpoint.go @@ -2,9 +2,9 @@ package whitelist import ( "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/metrics" "github.com/ledgerwatch/erigon/consensus/bor/finality/rawdb" "github.com/ledgerwatch/erigon/core/types" - "github.com/ledgerwatch/erigon/metrics" ) type checkpoint struct { diff --git a/consensus/bor/finality/whitelist/milestone.go b/consensus/bor/finality/whitelist/milestone.go index 4d78758b2f1..d0a91229da6 100644 --- a/consensus/bor/finality/whitelist/milestone.go +++ b/consensus/bor/finality/whitelist/milestone.go @@ -2,10 +2,10 @@ package whitelist import ( "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/metrics" "github.com/ledgerwatch/erigon/consensus/bor/finality/flags" "github.com/ledgerwatch/erigon/consensus/bor/finality/rawdb" "github.com/ledgerwatch/erigon/core/types" - "github.com/ledgerwatch/erigon/metrics" "github.com/ledgerwatch/log/v3" ) diff --git a/consensus/bor/finality/whitelist_helpers.go b/consensus/bor/finality/whitelist_helpers.go index 6c3b4a35a42..64e750ccffc 100644 --- a/consensus/bor/finality/whitelist_helpers.go +++ b/consensus/bor/finality/whitelist_helpers.go @@ -19,7 +19,7 @@ var ( // latest milestone from the local heimdall. errMilestone = errors.New("failed to fetch latest milestone") - ErrNotInRejectedList = errors.New("milestoneID doesn't exist in rejected list") + ErrNotInRejectedList = errors.New("MilestoneID not in rejected list") ) // fetchWhitelistCheckpoint fetches the latest checkpoint from it's local heimdall diff --git a/consensus/bor/heimdall/client.go b/consensus/bor/heimdall/client.go index 4869e8059c2..6fa9e1082a5 100644 --- a/consensus/bor/heimdall/client.go +++ b/consensus/bor/heimdall/client.go @@ -5,6 +5,7 @@ import ( "encoding/json" "errors" "fmt" + "github.com/ledgerwatch/erigon-lib/metrics" "io" "net/http" "net/url" @@ -15,7 +16,6 @@ import ( "github.com/ledgerwatch/erigon/consensus/bor/heimdall/checkpoint" "github.com/ledgerwatch/erigon/consensus/bor/heimdall/milestone" "github.com/ledgerwatch/erigon/consensus/bor/heimdall/span" - "github.com/ledgerwatch/erigon/metrics" "github.com/ledgerwatch/log/v3" ) diff --git a/consensus/bor/heimdall/metrics.go b/consensus/bor/heimdall/metrics.go index 8f3f42e7f86..235cdf83ff1 100644 --- a/consensus/bor/heimdall/metrics.go +++ b/consensus/bor/heimdall/metrics.go @@ -2,9 +2,8 @@ package heimdall import ( "context" + "github.com/ledgerwatch/erigon-lib/metrics" "time" - - "github.com/ledgerwatch/erigon/metrics" ) type ( diff --git a/consensus/bor/heimdall/span/testValidators.go b/consensus/bor/heimdall/span/testValidators.go index 8c00117dca5..29cf1cc2e6a 100644 --- a/consensus/bor/heimdall/span/testValidators.go +++ b/consensus/bor/heimdall/span/testValidators.go @@ -1,9 +1,9 @@ package span import ( + "github.com/ledgerwatch/erigon-lib/chain/networkname" "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon/consensus/bor/valset" - "github.com/ledgerwatch/erigon/params/networkname" ) // NetworkNameVals is a map of network name to validator set for tests/devnets diff --git a/consensus/bor/heimdallgrpc/state_sync.go b/consensus/bor/heimdallgrpc/state_sync.go index 3cf93dc906a..e1b49e67d93 100644 --- a/consensus/bor/heimdallgrpc/state_sync.go +++ b/consensus/bor/heimdallgrpc/state_sync.go @@ -6,7 +6,6 @@ import ( "io" libcommon "github.com/ledgerwatch/erigon-lib/common" - "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/consensus/bor/clerk" proto "github.com/maticnetwork/polyproto/heimdall" ) @@ -46,7 +45,7 @@ func (h *HeimdallGRPCClient) StateSyncEvents(ctx context.Context, fromID uint64, EventRecord: clerk.EventRecord{ ID: event.ID, Contract: libcommon.HexToAddress(event.Contract), - Data: common.Hex2Bytes(event.Data[2:]), + Data: libcommon.Hex2Bytes(event.Data[2:]), TxHash: libcommon.HexToHash(event.TxHash), LogIndex: event.LogIndex, ChainID: event.ChainID, diff --git a/consensus/clique/clique.go b/consensus/clique/clique.go index afd33850838..6efe46f21ae 100644 --- a/consensus/clique/clique.go +++ b/consensus/clique/clique.go @@ -22,6 +22,8 @@ import ( "context" "errors" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" + "github.com/ledgerwatch/erigon-lib/kv/dbutils" "io" "math/big" "math/rand" @@ -38,9 +40,7 @@ import ( "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/erigon/common" - "github.com/ledgerwatch/erigon/common/dbutils" "github.com/ledgerwatch/erigon/common/debug" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/consensus" "github.com/ledgerwatch/erigon/core/state" "github.com/ledgerwatch/erigon/core/types" diff --git a/consensus/clique/snapshot.go b/consensus/clique/snapshot.go index c478d6ec3b1..fb34b19c680 100644 --- a/consensus/clique/snapshot.go +++ b/consensus/clique/snapshot.go @@ -21,6 +21,7 @@ import ( "context" "errors" "fmt" + "github.com/ledgerwatch/erigon-lib/kv/dbutils" "sort" "time" @@ -33,7 +34,6 @@ import ( "github.com/ledgerwatch/log/v3" "github.com/ledgerwatch/erigon/common" - "github.com/ledgerwatch/erigon/common/dbutils" "github.com/ledgerwatch/erigon/core/types" ) diff --git a/consensus/ethash/algorithm.go b/consensus/ethash/algorithm.go index 3c20c22439e..6ac5737b672 100644 --- a/consensus/ethash/algorithm.go +++ b/consensus/ethash/algorithm.go @@ -18,6 +18,7 @@ package ethash import ( "encoding/binary" + common2 "github.com/ledgerwatch/erigon-lib/common" "hash" "math/big" "reflect" @@ -135,7 +136,7 @@ func seedHash(block uint64) []byte { return seed } - h := common.NewHasher() + h := common2.NewHasher() for i := 0; i < int(block/epochLength); i++ { h.Sha.Reset() @@ -151,7 +152,7 @@ func seedHash(block uint64) []byte { } } - common.ReturnHasherToPool(h) + common2.ReturnHasherToPool(h) return seed } diff --git a/consensus/ethash/algorithm_test.go b/consensus/ethash/algorithm_test.go index 722c83fadc3..d9fa5b1d400 100644 --- a/consensus/ethash/algorithm_test.go +++ b/consensus/ethash/algorithm_test.go @@ -19,13 +19,12 @@ package ethash import ( "bytes" "encoding/binary" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "io" "reflect" "testing" "github.com/ledgerwatch/erigon-lib/common/length" - - "github.com/ledgerwatch/erigon/common/hexutil" ) // prepare converts an ethash cache or dataset from a byte stream into the internal diff --git a/consensus/ethash/api.go b/consensus/ethash/api.go index 7ee7d81b19f..0ecd3a819d2 100644 --- a/consensus/ethash/api.go +++ b/consensus/ethash/api.go @@ -18,10 +18,10 @@ package ethash import ( "errors" + "github.com/ledgerwatch/erigon-lib/common/hexutil" libcommon "github.com/ledgerwatch/erigon-lib/common" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core/types" ) diff --git a/consensus/ethash/ethash_test.go b/consensus/ethash/ethash_test.go index 805ebe9cf60..c0566237c68 100644 --- a/consensus/ethash/ethash_test.go +++ b/consensus/ethash/ethash_test.go @@ -17,13 +17,13 @@ package ethash import ( + "github.com/ledgerwatch/erigon-lib/common/hexutil" "math/big" "testing" "time" libcommon "github.com/ledgerwatch/erigon-lib/common" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core/types" ) diff --git a/consensus/ethash/sealer.go b/consensus/ethash/sealer.go index 76a00da872f..d020147ff5a 100644 --- a/consensus/ethash/sealer.go +++ b/consensus/ethash/sealer.go @@ -21,6 +21,7 @@ import ( "context" crand "crypto/rand" "errors" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "math" "math/big" "math/rand" @@ -32,7 +33,6 @@ import ( libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon/common" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/consensus" "github.com/ledgerwatch/erigon/core/types" ) diff --git a/core/blockchain.go b/core/blockchain.go index 111ca5527eb..cea5bcc9b3f 100644 --- a/core/blockchain.go +++ b/core/blockchain.go @@ -23,6 +23,8 @@ import ( "math/big" "time" + "github.com/ledgerwatch/erigon-lib/metrics" + "golang.org/x/crypto/sha3" "golang.org/x/exp/slices" @@ -39,7 +41,6 @@ import ( "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/core/vm" "github.com/ledgerwatch/erigon/core/vm/evmtypes" - "github.com/ledgerwatch/erigon/metrics" "github.com/ledgerwatch/erigon/rlp" ) diff --git a/core/chain_makers.go b/core/chain_makers.go index 207d10feb2d..9034b5ee4d5 100644 --- a/core/chain_makers.go +++ b/core/chain_makers.go @@ -28,7 +28,6 @@ import ( "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/log/v3" - "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/consensus" "github.com/ledgerwatch/erigon/consensus/merge" "github.com/ledgerwatch/erigon/consensus/misc" @@ -365,7 +364,7 @@ func GenerateChain(config *chain.Config, parent *types.Block, engine consensus.E if daoBlock := config.DAOForkBlock; daoBlock != nil { limit := new(big.Int).Add(daoBlock, params.DAOForkExtraRange) if b.header.Number.Cmp(daoBlock) >= 0 && b.header.Number.Cmp(limit) < 0 { - b.header.Extra = common.CopyBytes(params.DAOForkBlockExtra) + b.header.Extra = libcommon.CopyBytes(params.DAOForkBlockExtra) } } if b.engine != nil { @@ -416,7 +415,7 @@ func GenerateChain(config *chain.Config, parent *types.Block, engine consensus.E return &ChainPack{Headers: headers, Blocks: blocks, Receipts: receipts, TopBlock: blocks[n-1]}, nil } -func hashKeyAndAddIncarnation(k []byte, h *common.Hasher) (newK []byte, err error) { +func hashKeyAndAddIncarnation(k []byte, h *libcommon.Hasher) (newK []byte, err error) { if len(k) == length.Addr { newK = make([]byte, length.Hash) } else { @@ -521,8 +520,8 @@ func CalcHashRootForTests(tx kv.RwTx, header *types.Header, histV4 bool) (hashRo if err != nil { return hashRoot, err } - h := common.NewHasher() - defer common.ReturnHasherToPool(h) + h := libcommon.NewHasher() + defer libcommon.ReturnHasherToPool(h) for k, v, err := c.First(); k != nil; k, v, err = c.Next() { if err != nil { return hashRoot, fmt.Errorf("interate over plain state: %w", err) @@ -532,11 +531,11 @@ func CalcHashRootForTests(tx kv.RwTx, header *types.Header, histV4 bool) (hashRo return hashRoot, fmt.Errorf("insert hashed key: %w", err) } if len(k) > length.Addr { - if err = tx.Put(kv.HashedStorage, newK, common.CopyBytes(v)); err != nil { + if err = tx.Put(kv.HashedStorage, newK, libcommon.CopyBytes(v)); err != nil { return hashRoot, fmt.Errorf("insert hashed key: %w", err) } } else { - if err = tx.Put(kv.HashedAccounts, newK, common.CopyBytes(v)); err != nil { + if err = tx.Put(kv.HashedAccounts, newK, libcommon.CopyBytes(v)); err != nil { return hashRoot, fmt.Errorf("insert hashed key: %w", err) } } diff --git a/core/forkid/forkid.go b/core/forkid/forkid.go index 5eee62811bb..433c9221b18 100644 --- a/core/forkid/forkid.go +++ b/core/forkid/forkid.go @@ -26,12 +26,11 @@ import ( "reflect" "strings" - "github.com/ledgerwatch/erigon-lib/chain" - libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/log/v3" "golang.org/x/exp/slices" - "github.com/ledgerwatch/erigon/common" + "github.com/ledgerwatch/erigon-lib/chain" + libcommon "github.com/ledgerwatch/erigon-lib/common" ) var ( @@ -245,12 +244,16 @@ func GatherForks(config *chain.Config, genesisTime uint64) (heightForks []uint64 heightForks = append(heightForks, *config.Aura.PosdaoTransition) } + if config.Bor != nil && config.Bor.AgraBlock != nil { + heightForks = append(heightForks, config.Bor.AgraBlock.Uint64()) + } + // Sort the fork block numbers & times to permit chronological XOR slices.Sort(heightForks) slices.Sort(timeForks) // Deduplicate block numbers/times applying to multiple forks - heightForks = common.RemoveDuplicatesFromSorted(heightForks) - timeForks = common.RemoveDuplicatesFromSorted(timeForks) + heightForks = libcommon.RemoveDuplicatesFromSorted(heightForks) + timeForks = libcommon.RemoveDuplicatesFromSorted(timeForks) // Skip any forks in block 0, that's the genesis ruleset if len(heightForks) > 0 && heightForks[0] == 0 { heightForks = heightForks[1:] diff --git a/core/forkid/forkid_test.go b/core/forkid/forkid_test.go index 4a8e69b6226..5355436193c 100644 --- a/core/forkid/forkid_test.go +++ b/core/forkid/forkid_test.go @@ -24,7 +24,6 @@ import ( "github.com/ledgerwatch/erigon-lib/chain" libcommon "github.com/ledgerwatch/erigon-lib/common" - "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/params" "github.com/ledgerwatch/erigon/rlp" ) @@ -142,6 +141,18 @@ func TestCreation(t *testing.T) { {4100419, 1684934220, ID{Hash: checksumToBytes(0xa15a4252), Next: 0}}, // First Shanghai block }, }, + // Mumbai test cases + { + params.MumbaiChainConfig, + params.MumbaiGenesisHash, + []testcase{ + {0, 0, ID{Hash: checksumToBytes(0xf6ef3fdf), Next: 2722000}}, + {2722000, 0, ID{Hash: checksumToBytes(0x8647df30), Next: 13996000}}, // First Istanbul block + {13996000, 0, ID{Hash: checksumToBytes(0x06cc1179), Next: 22640000}}, // First Berlin block + {22640000, 0, ID{Hash: checksumToBytes(0x9adf950e), Next: 41874000}}, // First London block + {41874000, 0, ID{Hash: checksumToBytes(0x0c015a91), Next: 0}}, // First Agra block + }, + }, } for i, tt := range tests { for j, ttt := range tt.cases { @@ -239,9 +250,9 @@ func TestEncoding(t *testing.T) { id ID want []byte }{ - {ID{Hash: checksumToBytes(0), Next: 0}, common.Hex2Bytes("c6840000000080")}, - {ID{Hash: checksumToBytes(0xdeadbeef), Next: 0xBADDCAFE}, common.Hex2Bytes("ca84deadbeef84baddcafe,")}, - {ID{Hash: checksumToBytes(math.MaxUint32), Next: math.MaxUint64}, common.Hex2Bytes("ce84ffffffff88ffffffffffffffff")}, + {ID{Hash: checksumToBytes(0), Next: 0}, libcommon.Hex2Bytes("c6840000000080")}, + {ID{Hash: checksumToBytes(0xdeadbeef), Next: 0xBADDCAFE}, libcommon.Hex2Bytes("ca84deadbeef84baddcafe,")}, + {ID{Hash: checksumToBytes(math.MaxUint32), Next: math.MaxUint64}, libcommon.Hex2Bytes("ce84ffffffff88ffffffffffffffff")}, } for i, tt := range tests { have, err := rlp.EncodeToBytes(tt.id) diff --git a/core/genesis_test.go b/core/genesis_test.go index 3f9b8dcf154..dd0ada5b6db 100644 --- a/core/genesis_test.go +++ b/core/genesis_test.go @@ -6,6 +6,7 @@ import ( "testing" "github.com/holiman/uint256" + "github.com/ledgerwatch/erigon-lib/chain/networkname" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/datadir" "github.com/ledgerwatch/erigon-lib/kv" @@ -19,7 +20,6 @@ import ( "github.com/ledgerwatch/erigon/core/state" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/params" - "github.com/ledgerwatch/erigon/params/networkname" "github.com/ledgerwatch/log/v3" ) diff --git a/core/genesis_write.go b/core/genesis_write.go index ec6ae12794b..34434402a13 100644 --- a/core/genesis_write.go +++ b/core/genesis_write.go @@ -32,14 +32,15 @@ import ( "golang.org/x/exp/slices" "github.com/ledgerwatch/erigon-lib/chain" + "github.com/ledgerwatch/erigon-lib/chain/networkname" libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/erigon-lib/kv/kvcfg" "github.com/ledgerwatch/erigon-lib/kv/mdbx" "github.com/ledgerwatch/erigon-lib/kv/rawdbv3" "github.com/ledgerwatch/erigon/common" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/consensus/ethash" "github.com/ledgerwatch/erigon/consensus/merge" "github.com/ledgerwatch/erigon/core/rawdb" @@ -49,7 +50,6 @@ import ( "github.com/ledgerwatch/erigon/crypto" "github.com/ledgerwatch/erigon/eth/ethconfig" "github.com/ledgerwatch/erigon/params" - "github.com/ledgerwatch/erigon/params/networkname" "github.com/ledgerwatch/erigon/turbo/trie" ) diff --git a/core/rawdb/accessors_chain.go b/core/rawdb/accessors_chain.go index e33469925f3..5a64f2965f1 100644 --- a/core/rawdb/accessors_chain.go +++ b/core/rawdb/accessors_chain.go @@ -22,6 +22,7 @@ import ( "encoding/binary" "encoding/json" "fmt" + "github.com/ledgerwatch/erigon-lib/kv/dbutils" "math" "math/big" "time" @@ -36,7 +37,6 @@ import ( "github.com/ledgerwatch/erigon-lib/kv/rawdbv3" "github.com/ledgerwatch/log/v3" - "github.com/ledgerwatch/erigon/common/dbutils" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/ethdb/cbor" "github.com/ledgerwatch/erigon/rlp" diff --git a/core/rawdb/blockio/block_writer.go b/core/rawdb/blockio/block_writer.go index 0b645e0df87..73264cda1fa 100644 --- a/core/rawdb/blockio/block_writer.go +++ b/core/rawdb/blockio/block_writer.go @@ -3,13 +3,13 @@ package blockio import ( "context" "encoding/binary" + "github.com/ledgerwatch/erigon-lib/kv/dbutils" "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/hexutility" "github.com/ledgerwatch/erigon-lib/etl" "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/erigon-lib/kv/rawdbv3" - "github.com/ledgerwatch/erigon/common/dbutils" "github.com/ledgerwatch/erigon/core/rawdb" "github.com/ledgerwatch/erigon/turbo/backup" "github.com/ledgerwatch/log/v3" diff --git a/core/rawdb/bor_receipts.go b/core/rawdb/bor_receipts.go index e5eef61f391..d05c25f1a44 100644 --- a/core/rawdb/bor_receipts.go +++ b/core/rawdb/bor_receipts.go @@ -4,6 +4,7 @@ import ( "bytes" "errors" "fmt" + "github.com/ledgerwatch/erigon-lib/kv/dbutils" "math/big" libcommon "github.com/ledgerwatch/erigon-lib/common" @@ -11,7 +12,6 @@ import ( "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/log/v3" - "github.com/ledgerwatch/erigon/common/dbutils" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/ethdb/cbor" "github.com/ledgerwatch/erigon/rlp" diff --git a/core/skip_analysis.go b/core/skip_analysis.go index 96c9226bdd9..55d38fc15ec 100644 --- a/core/skip_analysis.go +++ b/core/skip_analysis.go @@ -20,8 +20,7 @@ import ( "sort" "github.com/ledgerwatch/erigon-lib/chain" - - "github.com/ledgerwatch/erigon/params/networkname" + "github.com/ledgerwatch/erigon-lib/chain/networkname" ) // SkipAnalysis function tells us whether we can skip performing jumpdest analysis diff --git a/core/state/cached_reader2.go b/core/state/cached_reader2.go index 58e63b4620f..915544319c8 100644 --- a/core/state/cached_reader2.go +++ b/core/state/cached_reader2.go @@ -3,12 +3,12 @@ package state import ( "bytes" "encoding/binary" + "github.com/ledgerwatch/erigon-lib/kv/dbutils" "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/erigon-lib/kv/kvcache" - "github.com/ledgerwatch/erigon/common/dbutils" "github.com/ledgerwatch/erigon/core/types/accounts" ) diff --git a/core/state/change_set_writer.go b/core/state/change_set_writer.go index b3da878448f..98aeed1fd3e 100644 --- a/core/state/change_set_writer.go +++ b/core/state/change_set_writer.go @@ -2,6 +2,7 @@ package state import ( "fmt" + "github.com/ledgerwatch/erigon-lib/kv/dbutils" "github.com/holiman/uint256" libcommon "github.com/ledgerwatch/erigon-lib/common" @@ -9,8 +10,6 @@ import ( "github.com/ledgerwatch/erigon-lib/kv" historyv22 "github.com/ledgerwatch/erigon-lib/kv/temporal/historyv2" - "github.com/ledgerwatch/erigon/common" - "github.com/ledgerwatch/erigon/common/dbutils" "github.com/ledgerwatch/erigon/core/types/accounts" ) @@ -43,7 +42,7 @@ func NewChangeSetWriterPlain(db kv.RwTx, blockNumber uint64) *ChangeSetWriter { func (w *ChangeSetWriter) GetAccountChanges() (*historyv22.ChangeSet, error) { cs := historyv22.NewAccountChangeSet() for address, val := range w.accountChanges { - if err := cs.Add(common.CopyBytes(address[:]), val); err != nil { + if err := cs.Add(libcommon.CopyBytes(address[:]), val); err != nil { return nil, err } } diff --git a/core/state/database_test.go b/core/state/database_test.go index 02b4f9e1066..6eabd5350da 100644 --- a/core/state/database_test.go +++ b/core/state/database_test.go @@ -1369,7 +1369,7 @@ func TestRecreateAndRewind(t *testing.T) { case 1: // Calculate the address of the Phoenix and create handle to phoenix contract var codeHash libcommon.Hash - if codeHash, err = common.HashData(common.FromHex(contracts.PhoenixBin)); err != nil { + if codeHash, err = libcommon.HashData(common.FromHex(contracts.PhoenixBin)); err != nil { panic(err) } phoenixAddress = crypto.CreateAddress2(reviveAddress, [32]byte{}, codeHash.Bytes()) @@ -1431,7 +1431,7 @@ func TestRecreateAndRewind(t *testing.T) { case 1: // Calculate the address of the Phoenix and create handle to phoenix contract var codeHash libcommon.Hash - if codeHash, err = common.HashData(common.FromHex(contracts.PhoenixBin)); err != nil { + if codeHash, err = libcommon.HashData(common.FromHex(contracts.PhoenixBin)); err != nil { panic(err) } phoenixAddress = crypto.CreateAddress2(reviveAddress, [32]byte{}, codeHash.Bytes()) diff --git a/core/state/db_state_reader.go b/core/state/db_state_reader.go index 21f91d5e981..11ba22559b8 100644 --- a/core/state/db_state_reader.go +++ b/core/state/db_state_reader.go @@ -3,13 +3,12 @@ package state import ( "bytes" "encoding/binary" + "github.com/ledgerwatch/erigon-lib/kv/dbutils" "github.com/VictoriaMetrics/fastcache" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/kv" - "github.com/ledgerwatch/erigon/common" - "github.com/ledgerwatch/erigon/common/dbutils" "github.com/ledgerwatch/erigon/core/types/accounts" ) @@ -52,7 +51,7 @@ func (dbr *DbStateReader) ReadAccountData(address libcommon.Address) (*accounts. } if !ok { var err error - if addrHash, err1 := common.HashData(address[:]); err1 == nil { + if addrHash, err1 := libcommon.HashData(address[:]); err1 == nil { enc, err = dbr.db.GetOne(kv.HashedAccounts, addrHash[:]) } else { return nil, err1 @@ -75,11 +74,11 @@ func (dbr *DbStateReader) ReadAccountData(address libcommon.Address) (*accounts. } func (dbr *DbStateReader) ReadAccountStorage(address libcommon.Address, incarnation uint64, key *libcommon.Hash) ([]byte, error) { - addrHash, err := common.HashData(address[:]) + addrHash, err := libcommon.HashData(address[:]) if err != nil { return nil, err } - seckey, err1 := common.HashData(key[:]) + seckey, err1 := libcommon.HashData(key[:]) if err1 != nil { return nil, err1 } diff --git a/core/state/db_state_writer.go b/core/state/db_state_writer.go index fd4319840d3..0902a18a540 100644 --- a/core/state/db_state_writer.go +++ b/core/state/db_state_writer.go @@ -4,6 +4,7 @@ import ( "bytes" "encoding/binary" "fmt" + dbutils2 "github.com/ledgerwatch/erigon-lib/kv/dbutils" "github.com/RoaringBitmap/roaring/roaring64" "github.com/holiman/uint256" @@ -12,8 +13,6 @@ import ( "github.com/ledgerwatch/erigon-lib/kv/bitmapdb" "github.com/ledgerwatch/erigon-lib/kv/temporal/historyv2" - "github.com/ledgerwatch/erigon/common" - "github.com/ledgerwatch/erigon/common/dbutils" "github.com/ledgerwatch/erigon/common/math" "github.com/ledgerwatch/erigon/core/types/accounts" "github.com/ledgerwatch/erigon/ethdb" @@ -66,7 +65,7 @@ func (dsw *DbStateWriter) UpdateAccountData(address libcommon.Address, original, if err := dsw.csw.UpdateAccountData(address, original, account); err != nil { return err } - addrHash, err := common.HashData(address[:]) + addrHash, err := libcommon.HashData(address[:]) if err != nil { return err } @@ -82,7 +81,7 @@ func (dsw *DbStateWriter) DeleteAccount(address libcommon.Address, original *acc if err := dsw.csw.DeleteAccount(address, original); err != nil { return err } - addrHash, err := common.HashData(address[:]) + addrHash, err := libcommon.HashData(address[:]) if err != nil { return err } @@ -107,12 +106,12 @@ func (dsw *DbStateWriter) UpdateAccountCode(address libcommon.Address, incarnati if err := dsw.db.Put(kv.Code, codeHash[:], code); err != nil { return err } - addrHash, err := common.HashData(address.Bytes()) + addrHash, err := libcommon.HashData(address.Bytes()) if err != nil { return err } //save contract to codeHash mapping - if err := dsw.db.Put(kv.ContractCode, dbutils.GenerateStoragePrefix(addrHash[:], incarnation), codeHash[:]); err != nil { + if err := dsw.db.Put(kv.ContractCode, dbutils2.GenerateStoragePrefix(addrHash[:], incarnation), codeHash[:]); err != nil { return err } return nil @@ -126,15 +125,15 @@ func (dsw *DbStateWriter) WriteAccountStorage(address libcommon.Address, incarna if *original == *value { return nil } - seckey, err := common.HashData(key[:]) + seckey, err := libcommon.HashData(key[:]) if err != nil { return err } - addrHash, err := common.HashData(address[:]) + addrHash, err := libcommon.HashData(address[:]) if err != nil { return err } - compositeKey := dbutils.GenerateCompositeStorageKey(addrHash, incarnation, seckey) + compositeKey := dbutils2.GenerateCompositeStorageKey(addrHash, incarnation, seckey) v := value.Bytes() if len(v) == 0 { @@ -181,7 +180,7 @@ func (dsw *DbStateWriter) WriteHistory() error { func writeIndex(blocknum uint64, changes *historyv2.ChangeSet, bucket string, changeDb kv.RwTx) error { buf := bytes.NewBuffer(nil) for _, change := range changes.Changes { - k := dbutils.CompositeKeyWithoutIncarnation(change.Key) + k := dbutils2.CompositeKeyWithoutIncarnation(change.Key) index, err := bitmapdb.Get64(changeDb, bucket, k, math.MaxUint32, math.MaxUint32) if err != nil { @@ -193,7 +192,7 @@ func writeIndex(blocknum uint64, changes *historyv2.ChangeSet, bucket string, ch if _, err = chunk.WriteTo(buf); err != nil { return err } - return changeDb.Put(bucket, chunkKey, common.CopyBytes(buf.Bytes())) + return changeDb.Put(bucket, chunkKey, libcommon.CopyBytes(buf.Bytes())) }); err != nil { return err } diff --git a/core/state/dump.go b/core/state/dump.go index d217b1442a7..fff70b3ddb6 100644 --- a/core/state/dump.go +++ b/core/state/dump.go @@ -20,6 +20,7 @@ import ( "bytes" "encoding/json" "fmt" + "github.com/ledgerwatch/erigon-lib/kv/dbutils" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/hexutility" @@ -28,7 +29,6 @@ import ( "github.com/ledgerwatch/erigon-lib/kv/rawdbv3" "github.com/ledgerwatch/erigon/common" - "github.com/ledgerwatch/erigon/common/dbutils" "github.com/ledgerwatch/erigon/core/types/accounts" "github.com/ledgerwatch/erigon/crypto" "github.com/ledgerwatch/erigon/turbo/trie" @@ -273,7 +273,7 @@ func (d *Dumper) DumpToCollector(c DumpCollector, excludeCode, excludeStorage bo } loc := k[20:] account.Storage[libcommon.BytesToHash(loc).String()] = common.Bytes2Hex(vs) - h, _ := common.HashData(loc) + h, _ := libcommon.HashData(loc) t.Update(h.Bytes(), libcommon.Copy(vs)) } } else { @@ -284,7 +284,7 @@ func (d *Dumper) DumpToCollector(c DumpCollector, excludeCode, excludeStorage bo d.blockNumber, func(_, loc, vs []byte) (bool, error) { account.Storage[libcommon.BytesToHash(loc).String()] = common.Bytes2Hex(vs) - h, _ := common.HashData(loc) + h, _ := libcommon.HashData(loc) t.Update(h.Bytes(), libcommon.Copy(vs)) return true, nil }); err != nil { diff --git a/core/state/history_test.go b/core/state/history_test.go index ab243534bba..39b9b8788df 100644 --- a/core/state/history_test.go +++ b/core/state/history_test.go @@ -2,6 +2,7 @@ package state import ( "fmt" + "github.com/ledgerwatch/erigon-lib/kv/dbutils" "math/rand" "reflect" "sort" @@ -19,8 +20,6 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/ledgerwatch/erigon/common" - "github.com/ledgerwatch/erigon/common/dbutils" "github.com/ledgerwatch/erigon/common/math" "github.com/ledgerwatch/erigon/core/state/historyv2read" "github.com/ledgerwatch/erigon/core/types/accounts" @@ -377,7 +376,7 @@ func TestWalkAsOfStatePlain(t *testing.T) { for _, addr := range addrs { if err := WalkAsOfStorage(tx, addr, historyv2read.DefaultIncarnation, libcommon.Hash{}, 2, func(kAddr, kLoc []byte, v []byte) (b bool, e error) { - err := block2.Add(append(common.CopyBytes(kAddr), kLoc...), common.CopyBytes(v)) + err := block2.Add(append(libcommon.CopyBytes(kAddr), kLoc...), libcommon.CopyBytes(v)) if err != nil { t.Fatal(err) } @@ -393,7 +392,7 @@ func TestWalkAsOfStatePlain(t *testing.T) { } for _, addr := range addrs { if err := WalkAsOfStorage(tx, addr, historyv2read.DefaultIncarnation, libcommon.Hash{}, 4, func(kAddr, kLoc []byte, v []byte) (b bool, e error) { - err := block4.Add(append(common.CopyBytes(kAddr), kLoc...), common.CopyBytes(v)) + err := block4.Add(append(libcommon.CopyBytes(kAddr), kLoc...), libcommon.CopyBytes(v)) if err != nil { t.Fatal(err) } @@ -424,7 +423,7 @@ func TestWalkAsOfStatePlain(t *testing.T) { } for _, addr := range addrs { if err := WalkAsOfStorage(tx, addr, historyv2read.DefaultIncarnation, libcommon.Hash{}, 6, func(kAddr, kLoc []byte, v []byte) (b bool, e error) { - err := block6.Add(append(common.CopyBytes(kAddr), kLoc...), common.CopyBytes(v)) + err := block6.Add(append(libcommon.CopyBytes(kAddr), kLoc...), libcommon.CopyBytes(v)) if err != nil { t.Fatal(err) } @@ -555,7 +554,7 @@ func TestWalkAsOfUsingFixedBytesStatePlain(t *testing.T) { copy(startKey[:length.Addr], addr1.Bytes()) if err := WalkAsOfStorage(tx, addr1, historyv2read.DefaultIncarnation, libcommon.Hash{}, 2, func(kAddr, kLoc []byte, v []byte) (b bool, e error) { - err := block2.Add(append(common.CopyBytes(kAddr), kLoc...), common.CopyBytes(v)) + err := block2.Add(append(libcommon.CopyBytes(kAddr), kLoc...), libcommon.CopyBytes(v)) if err != nil { t.Fatal(err) } @@ -569,7 +568,7 @@ func TestWalkAsOfUsingFixedBytesStatePlain(t *testing.T) { Changes: make([]historyv2.Change, 0), } if err := WalkAsOfStorage(tx, addr1, historyv2read.DefaultIncarnation, libcommon.Hash{}, 4, func(kAddr, kLoc []byte, v []byte) (b bool, e error) { - err := block4.Add(append(common.CopyBytes(kAddr), kLoc...), common.CopyBytes(v)) + err := block4.Add(append(libcommon.CopyBytes(kAddr), kLoc...), libcommon.CopyBytes(v)) if err != nil { t.Fatal(err) } @@ -597,7 +596,7 @@ func TestWalkAsOfUsingFixedBytesStatePlain(t *testing.T) { block4.Changes = block4.Changes[:0] for _, addr := range []libcommon.Address{addr1, addr2} { if err := WalkAsOfStorage(tx, addr, historyv2read.DefaultIncarnation, libcommon.Hash{}, 4, func(kAddr, kLoc []byte, v []byte) (b bool, e error) { - err := block4.Add(append(common.CopyBytes(kAddr), kLoc...), common.CopyBytes(v)) + err := block4.Add(append(libcommon.CopyBytes(kAddr), kLoc...), libcommon.CopyBytes(v)) if err != nil { t.Fatal(err) } @@ -617,7 +616,7 @@ func TestWalkAsOfUsingFixedBytesStatePlain(t *testing.T) { Changes: make([]historyv2.Change, 0), } if err := WalkAsOfStorage(tx, addr1, historyv2read.DefaultIncarnation, libcommon.Hash{}, 6, func(kAddr, kLoc []byte, v []byte) (b bool, e error) { - err := block6.Add(append(common.CopyBytes(kAddr), kLoc...), common.CopyBytes(v)) + err := block6.Add(append(libcommon.CopyBytes(kAddr), kLoc...), libcommon.CopyBytes(v)) if err != nil { t.Fatal(err) } @@ -641,7 +640,7 @@ func TestWalkAsOfUsingFixedBytesStatePlain(t *testing.T) { block6.Changes = block6.Changes[:0] for _, addr := range []libcommon.Address{addr1, addr2} { if err := WalkAsOfStorage(tx, addr, historyv2read.DefaultIncarnation, libcommon.Hash{}, 6, func(kAddr, kLoc []byte, v []byte) (b bool, e error) { - err := block6.Add(append(common.CopyBytes(kAddr), kLoc...), common.CopyBytes(v)) + err := block6.Add(append(libcommon.CopyBytes(kAddr), kLoc...), libcommon.CopyBytes(v)) if err != nil { t.Fatal(err) } @@ -681,7 +680,7 @@ func TestWalkAsOfAccountPlain(t *testing.T) { addrHashes := make([]libcommon.Hash, numOfAccounts) for i := uint8(0); i < numOfAccounts; i++ { addrs[i] = libcommon.Address{i + 1} - addrHash, _ := common.HashData(addrs[i].Bytes()) + addrHash, _ := libcommon.HashData(addrs[i].Bytes()) addrHashes[i] = addrHash } @@ -730,7 +729,7 @@ func TestWalkAsOfAccountPlain(t *testing.T) { }) if err := WalkAsOfAccounts(tx, libcommon.Address{}, 2, func(k []byte, v []byte) (b bool, e error) { - innerErr := block2.Add(common.CopyBytes(k), common.CopyBytes(v)) + innerErr := block2.Add(libcommon.CopyBytes(k), libcommon.CopyBytes(v)) if innerErr != nil { t.Fatal(innerErr) } @@ -762,7 +761,7 @@ func TestWalkAsOfAccountPlain(t *testing.T) { } if err := WalkAsOfAccounts(tx, libcommon.Address{}, 4, func(k []byte, v []byte) (b bool, e error) { - innerErr := block4.Add(common.CopyBytes(k), common.CopyBytes(v)) + innerErr := block4.Add(libcommon.CopyBytes(k), libcommon.CopyBytes(v)) if innerErr != nil { t.Fatal(innerErr) } @@ -794,7 +793,7 @@ func TestWalkAsOfAccountPlain(t *testing.T) { } if err := WalkAsOfAccounts(tx, libcommon.Address{}, 6, func(k []byte, v []byte) (b bool, e error) { - innerErr := block6.Add(common.CopyBytes(k), common.CopyBytes(v)) + innerErr := block6.Add(libcommon.CopyBytes(k), libcommon.CopyBytes(v)) if innerErr != nil { t.Fatal(innerErr) } @@ -829,7 +828,7 @@ func TestWalkAsOfAccountPlain_WithChunks(t *testing.T) { addrHashes := make([]libcommon.Hash, numOfAccounts) for i := uint8(0); i < numOfAccounts; i++ { addrs[i] = libcommon.Address{i + 1} - addrHash, _ := common.HashData(addrs[i].Bytes()) + addrHash, _ := libcommon.HashData(addrs[i].Bytes()) addrHashes[i] = addrHash } @@ -923,7 +922,7 @@ func TestWalkAsOfAccountPlain_WithChunks(t *testing.T) { } if err := WalkAsOfAccounts(tx, libcommon.Address{}, blockNum, func(k []byte, v []byte) (b bool, e error) { - innerErr := obtained.Add(common.CopyBytes(k), common.CopyBytes(v)) + innerErr := obtained.Add(libcommon.CopyBytes(k), libcommon.CopyBytes(v)) if innerErr != nil { t.Fatal(innerErr) } @@ -964,7 +963,7 @@ func TestWalkAsOfStoragePlain_WithChunks(t *testing.T) { addrHashes := make([]libcommon.Hash, numOfAccounts) for i := uint8(0); i < numOfAccounts; i++ { addrs[i] = libcommon.Address{i + 1} - addrHash, _ := common.HashData(addrs[i].Bytes()) + addrHash, _ := libcommon.HashData(addrs[i].Bytes()) addrHashes[i] = addrHash } key := libcommon.Hash{123} @@ -1057,7 +1056,7 @@ func TestWalkAsOfStoragePlain_WithChunks(t *testing.T) { for _, addr := range addrs { if err := WalkAsOfStorage(tx, addr, historyv2read.DefaultIncarnation, libcommon.Hash{}, blockNum, func(kAddr, kLoc []byte, v []byte) (b bool, e error) { - if innerErr := obtained.Add(append(common.CopyBytes(kAddr), kLoc...), common.CopyBytes(v)); innerErr != nil { + if innerErr := obtained.Add(append(libcommon.CopyBytes(kAddr), kLoc...), libcommon.CopyBytes(v)); innerErr != nil { t.Fatal(innerErr) } return true, nil diff --git a/core/state/history_walk.go b/core/state/history_walk.go index f14446f122a..686d3e8905e 100644 --- a/core/state/history_walk.go +++ b/core/state/history_walk.go @@ -4,6 +4,7 @@ import ( "bytes" "encoding/binary" "fmt" + "github.com/ledgerwatch/erigon-lib/kv/dbutils" "github.com/RoaringBitmap/roaring/roaring64" libcommon "github.com/ledgerwatch/erigon-lib/common" @@ -12,7 +13,6 @@ import ( "github.com/ledgerwatch/erigon-lib/kv/bitmapdb" "github.com/ledgerwatch/erigon/common" - "github.com/ledgerwatch/erigon/common/dbutils" "github.com/ledgerwatch/erigon/ethdb" ) diff --git a/core/state/plain_readonly.go b/core/state/plain_readonly.go index 433ffeccd25..9f1337f4e95 100644 --- a/core/state/plain_readonly.go +++ b/core/state/plain_readonly.go @@ -20,6 +20,7 @@ import ( "bytes" "encoding/binary" "fmt" + "github.com/ledgerwatch/erigon-lib/kv/dbutils" "sort" "github.com/google/btree" @@ -30,8 +31,6 @@ import ( "github.com/ledgerwatch/erigon-lib/kv/kvcfg" "github.com/ledgerwatch/log/v3" - "github.com/ledgerwatch/erigon/common" - "github.com/ledgerwatch/erigon/common/dbutils" "github.com/ledgerwatch/erigon/core/state/historyv2read" "github.com/ledgerwatch/erigon/core/types/accounts" ) @@ -133,7 +132,7 @@ func (s *PlainState) ForEachStorage(addr libcommon.Address, startLocation libcom // Skip deleted entries return true, nil } - keyHash, err1 := common.HashData(kLoc) + keyHash, err1 := libcommon.HashData(kLoc) if err1 != nil { return false, err1 } @@ -289,8 +288,8 @@ func (s *PlainState) WriteAccountStorage(address libcommon.Address, incarnation t = btree.New(16) s.storage[address] = t } - h := common.NewHasher() - defer common.ReturnHasherToPool(h) + h := libcommon.NewHasher() + defer libcommon.ReturnHasherToPool(h) _, err := h.Sha.Write(key[:]) if err != nil { return err diff --git a/core/state/plain_state_reader.go b/core/state/plain_state_reader.go index 0b43033f259..0db63b4dcdb 100644 --- a/core/state/plain_state_reader.go +++ b/core/state/plain_state_reader.go @@ -3,11 +3,11 @@ package state import ( "bytes" "encoding/binary" + "github.com/ledgerwatch/erigon-lib/kv/dbutils" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/kv" - "github.com/ledgerwatch/erigon/common/dbutils" "github.com/ledgerwatch/erigon/core/types/accounts" ) diff --git a/core/state/plain_state_writer.go b/core/state/plain_state_writer.go index 367139027df..2fd01159012 100644 --- a/core/state/plain_state_writer.go +++ b/core/state/plain_state_writer.go @@ -2,12 +2,12 @@ package state import ( "encoding/binary" + "github.com/ledgerwatch/erigon-lib/kv/dbutils" "github.com/holiman/uint256" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/kv" - "github.com/ledgerwatch/erigon/common/dbutils" "github.com/ledgerwatch/erigon/core/types/accounts" "github.com/ledgerwatch/erigon/turbo/shards" ) diff --git a/core/state/recon_writer_inc.go b/core/state/recon_writer_inc.go index 05862023dbe..a6faade2c8d 100644 --- a/core/state/recon_writer_inc.go +++ b/core/state/recon_writer_inc.go @@ -2,14 +2,13 @@ package state import ( "bytes" + "github.com/ledgerwatch/erigon-lib/kv/dbutils" "github.com/holiman/uint256" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/kv" libstate "github.com/ledgerwatch/erigon-lib/state" - "github.com/ledgerwatch/erigon/common" - "github.com/ledgerwatch/erigon/common/dbutils" "github.com/ledgerwatch/erigon/core/types/accounts" ) @@ -60,7 +59,7 @@ func (w *StateReconWriterInc) UpdateAccountCode(address libcommon.Address, incar return nil } if len(code) > 0 { - w.rs.Put(kv.CodeR, codeHashBytes, nil, common.CopyBytes(code), w.txNum) + w.rs.Put(kv.CodeR, codeHashBytes, nil, libcommon.CopyBytes(code), w.txNum) w.rs.Put(kv.PlainContractR, dbutils.PlainGenerateStoragePrefix(addr, FirstContractIncarnation), nil, codeHashBytes, w.txNum) } else { w.rs.Delete(kv.PlainContractD, dbutils.PlainGenerateStoragePrefix(addr, FirstContractIncarnation), nil, w.txNum) @@ -85,7 +84,7 @@ func (w *StateReconWriterInc) DeleteAccount(address libcommon.Address, original for k, _, err = c.Seek(addr); err == nil && bytes.HasPrefix(k, addr); k, _, err = c.Next() { //fmt.Printf("delete account storage [%x] [%x]=>{} txNum: %d\n", address, k[20+8:], w.txNum) if len(k) > 20 { - w.rs.Delete(kv.PlainStateD, addr, common.CopyBytes(k[20+8:]), w.txNum) + w.rs.Delete(kv.PlainStateD, addr, libcommon.CopyBytes(k[20+8:]), w.txNum) } } if err != nil { diff --git a/core/state/rw_v3.go b/core/state/rw_v3.go index 756501a8afe..ef1c61e2ee4 100644 --- a/core/state/rw_v3.go +++ b/core/state/rw_v3.go @@ -6,6 +6,7 @@ import ( "encoding/binary" "encoding/hex" "fmt" + "github.com/ledgerwatch/erigon-lib/kv/dbutils" "sync" "time" "unsafe" @@ -23,7 +24,6 @@ import ( btree2 "github.com/tidwall/btree" "github.com/ledgerwatch/erigon/cmd/state/exec22" - "github.com/ledgerwatch/erigon/common/dbutils" "github.com/ledgerwatch/erigon/core/state/temporal" "github.com/ledgerwatch/erigon/core/types/accounts" "github.com/ledgerwatch/erigon/turbo/shards" diff --git a/core/state_transition.go b/core/state_transition.go index 32aeadba317..fab55bb94dd 100644 --- a/core/state_transition.go +++ b/core/state_transition.go @@ -24,7 +24,6 @@ import ( "github.com/ledgerwatch/erigon-lib/txpool/txpoolcfg" types2 "github.com/ledgerwatch/erigon-lib/types" - "github.com/ledgerwatch/erigon/common" cmath "github.com/ledgerwatch/erigon/common/math" "github.com/ledgerwatch/erigon/common/u256" "github.com/ledgerwatch/erigon/consensus/misc" @@ -120,7 +119,7 @@ func (result *ExecutionResult) Return() []byte { if result.Err != nil { return nil } - return common.CopyBytes(result.ReturnData) + return libcommon.CopyBytes(result.ReturnData) } // Revert returns the concrete revert reason if the execution is aborted by `REVERT` @@ -129,7 +128,7 @@ func (result *ExecutionResult) Revert() []byte { if result.Err != vm.ErrExecutionReverted { return nil } - return common.CopyBytes(result.ReturnData) + return libcommon.CopyBytes(result.ReturnData) } // IntrinsicGas computes the 'intrinsic gas' for a message with the given data. @@ -180,7 +179,7 @@ func NewStateTransition(evm *vm.EVM, msg Message, gp *GasPool) *StateTransition // state and would never be accepted within a block. // `refunds` is false when it is not required to apply gas refunds // `gasBailout` is true when it is not required to fail transaction if the balance is not enough to pay gas. -// for trace_call to replicate OE/Pariry behaviour +// for trace_call to replicate OE/Parity behaviour func ApplyMessage(evm *vm.EVM, msg Message, gp *GasPool, refunds bool, gasBailout bool) (*ExecutionResult, error) { return NewStateTransition(evm, msg, gp).TransitionDb(refunds, gasBailout) } @@ -443,10 +442,12 @@ func (st *StateTransition) TransitionDb(refunds bool, gasBailout bool) (*Executi amount := new(uint256.Int).SetUint64(st.gasUsed()) amount.Mul(amount, effectiveTip) // gasUsed * effectiveTip = how much goes to the block producer (miner, validator) st.state.AddBalance(coinbase, amount, evmtypes.BalanceChangeRewardTransactionFee) - if !msg.IsFree() && rules.IsLondon && rules.IsEip1559FeeCollector { - burntContractAddress := *st.evm.ChainConfig().Eip1559FeeCollector - burnAmount := new(uint256.Int).Mul(new(uint256.Int).SetUint64(st.gasUsed()), st.evm.Context().BaseFee) - st.state.AddBalance(burntContractAddress, burnAmount, evmtypes.BalanceChangeBurn) + if !msg.IsFree() && rules.IsLondon { + burntContractAddress := st.evm.ChainConfig().GetBurntContract(st.evm.Context().BlockNumber) + if burntContractAddress != nil { + burnAmount := new(uint256.Int).Mul(new(uint256.Int).SetUint64(st.gasUsed()), st.evm.Context().BaseFee) + st.state.AddBalance(*burntContractAddress, burnAmount, evmtypes.BalanceChangeBurn) + } } if st.isBor { // Deprecating transfer log and will be removed in future fork. PLEASE DO NOT USE this transfer log going forward. Parameters won't get updated as expected going forward with EIP1559 diff --git a/core/system_contract_lookup.go b/core/system_contract_lookup.go index dfcecb38d8c..01067fb26d4 100644 --- a/core/system_contract_lookup.go +++ b/core/system_contract_lookup.go @@ -4,14 +4,13 @@ import ( "fmt" "strconv" + "github.com/ledgerwatch/erigon-lib/chain/networkname" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/hexutility" - "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/core/systemcontracts" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/params" - "github.com/ledgerwatch/erigon/params/networkname" ) func init() { @@ -44,7 +43,7 @@ func allocToCodeRecords(alloc types.GenesisAlloc, byChain map[libcommon.Address] for addr, account := range alloc { if len(account.Code) > 0 { list := byChain[addr] - codeHash, err := common.HashData(account.Code) + codeHash, err := libcommon.HashData(account.Code) if err != nil { panic(fmt.Errorf("failed to hash system contract code: %s", err.Error())) } @@ -65,7 +64,7 @@ func addGnosisSpecialCase() { oldContractCode := hexutility.FromHex("0x6080604052600436106101b65763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166305d2035b81146101bb57806306fdde03146101e4578063095ea7b31461026e5780630b26cf661461029257806318160ddd146102b557806323b872dd146102dc57806330adf81f14610306578063313ce5671461031b5780633644e51514610346578063395093511461035b5780634000aea01461037f57806340c10f19146103b057806342966c68146103d457806354fd4d50146103ec578063661884631461040157806369ffa08a1461042557806370a082311461044c578063715018a61461046d578063726600ce146104825780637d64bcb4146104a35780637ecebe00146104b8578063859ba28c146104d95780638da5cb5b1461051a5780638fcbaf0c1461054b57806395d89b4114610589578063a457c2d71461059e578063a9059cbb146105c2578063b753a98c146105e6578063bb35783b1461060a578063cd59658314610634578063d73dd62314610649578063dd62ed3e1461066d578063f2d5d56b14610694578063f2fde38b146106b8578063ff9e884d146106d9575b600080fd5b3480156101c757600080fd5b506101d0610700565b604080519115158252519081900360200190f35b3480156101f057600080fd5b506101f9610721565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561023357818101518382015260200161021b565b50505050905090810190601f1680156102605780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561027a57600080fd5b506101d0600160a060020a03600435166024356107af565b34801561029e57600080fd5b506102b3600160a060020a0360043516610803565b005b3480156102c157600080fd5b506102ca61085d565b60408051918252519081900360200190f35b3480156102e857600080fd5b506101d0600160a060020a0360043581169060243516604435610863565b34801561031257600080fd5b506102ca610a32565b34801561032757600080fd5b50610330610a56565b6040805160ff9092168252519081900360200190f35b34801561035257600080fd5b506102ca610a5f565b34801561036757600080fd5b506101d0600160a060020a0360043516602435610a65565b34801561038b57600080fd5b506101d060048035600160a060020a0316906024803591604435918201910135610a78565b3480156103bc57600080fd5b506101d0600160a060020a0360043516602435610b89565b3480156103e057600080fd5b506102b3600435610c94565b3480156103f857600080fd5b506101f9610ca1565b34801561040d57600080fd5b506101d0600160a060020a0360043516602435610cd8565b34801561043157600080fd5b506102b3600160a060020a0360043581169060243516610db5565b34801561045857600080fd5b506102ca600160a060020a0360043516610df1565b34801561047957600080fd5b506102b3610e0c565b34801561048e57600080fd5b506101d0600160a060020a0360043516610e23565b3480156104af57600080fd5b506101d0610e37565b3480156104c457600080fd5b506102ca600160a060020a0360043516610e3e565b3480156104e557600080fd5b506104ee610e50565b6040805167ffffffffffffffff9485168152928416602084015292168183015290519081900360600190f35b34801561052657600080fd5b5061052f610e5b565b60408051600160a060020a039092168252519081900360200190f35b34801561055757600080fd5b506102b3600160a060020a0360043581169060243516604435606435608435151560ff60a4351660c43560e435610e6a565b34801561059557600080fd5b506101f9611171565b3480156105aa57600080fd5b506101d0600160a060020a03600435166024356111cb565b3480156105ce57600080fd5b506101d0600160a060020a03600435166024356111d7565b3480156105f257600080fd5b506102b3600160a060020a0360043516602435611202565b34801561061657600080fd5b506102b3600160a060020a036004358116906024351660443561120d565b34801561064057600080fd5b5061052f61121e565b34801561065557600080fd5b506101d0600160a060020a036004351660243561122d565b34801561067957600080fd5b506102ca600160a060020a03600435811690602435166112b4565b3480156106a057600080fd5b506102b3600160a060020a03600435166024356112df565b3480156106c457600080fd5b506102b3600160a060020a03600435166112ea565b3480156106e557600080fd5b506102ca600160a060020a036004358116906024351661130a565b60065474010000000000000000000000000000000000000000900460ff1681565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156107a75780601f1061077c576101008083540402835291602001916107a7565b820191906000526020600020905b81548152906001019060200180831161078a57829003601f168201915b505050505081565b336000818152600560209081526040808320600160a060020a03871680855290835281842086905581518681529151939490939092600080516020611a13833981519152928290030190a350600192915050565b600654600160a060020a0316331461081a57600080fd5b61082381611327565b151561082e57600080fd5b6007805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60045490565b600080600160a060020a038516151561087b57600080fd5b600160a060020a038416151561089057600080fd5b600160a060020a0385166000908152600360205260409020546108b9908463ffffffff61132f16565b600160a060020a0380871660009081526003602052604080822093909355908616815220546108ee908463ffffffff61134116565b600160a060020a0380861660008181526003602090815260409182902094909455805187815290519193928916926000805160206119f383398151915292918290030190a3600160a060020a0385163314610a1c5761094d85336112b4565b905060001981146109b757610968818463ffffffff61132f16565b600160a060020a038616600081815260056020908152604080832033808552908352928190208590558051948552519193600080516020611a13833981519152929081900390910190a3610a1c565b600160a060020a0385166000908152600a602090815260408083203384529091529020541580610a1157506109ea611354565b600160a060020a0386166000908152600a6020908152604080832033845290915290205410155b1515610a1c57600080fd5b610a27858585611358565b506001949350505050565b7fea2aa0a1be11a07ed86d755c93467f4f82362b452371d1ba94d1715123511acb81565b60025460ff1681565b60085481565b6000610a71838361122d565b9392505050565b600084600160a060020a03811615801590610a9c5750600160a060020a0381163014155b1515610aa757600080fd5b610ab186866113ef565b1515610abc57600080fd5b85600160a060020a031633600160a060020a03167fe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c16878787604051808481526020018060200182810382528484828181526020019250808284376040519201829003965090945050505050a3610b3186611327565b15610b7d57610b7233878787878080601f016020809104026020016040519081016040528093929190818152602001838380828437506113fb945050505050565b1515610b7d57600080fd5b50600195945050505050565b600654600090600160a060020a03163314610ba357600080fd5b60065474010000000000000000000000000000000000000000900460ff1615610bcb57600080fd5b600454610bde908363ffffffff61134116565b600455600160a060020a038316600090815260036020526040902054610c0a908363ffffffff61134116565b600160a060020a038416600081815260036020908152604091829020939093558051858152905191927f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d412139688592918290030190a2604080518381529051600160a060020a038516916000916000805160206119f38339815191529181900360200190a350600192915050565b610c9e3382611591565b50565b60408051808201909152600181527f3100000000000000000000000000000000000000000000000000000000000000602082015281565b336000908152600560209081526040808320600160a060020a0386168452909152812054808310610d2c57336000908152600560209081526040808320600160a060020a0388168452909152812055610d61565b610d3c818463ffffffff61132f16565b336000908152600560209081526040808320600160a060020a03891684529091529020555b336000818152600560209081526040808320600160a060020a038916808552908352928190205481519081529051929392600080516020611a13833981519152929181900390910190a35060019392505050565b600654600160a060020a03163314610dcc57600080fd5b80600160a060020a0381161515610de257600080fd5b610dec8383611680565b505050565b600160a060020a031660009081526003602052604090205490565b600654600160a060020a031633146101b657600080fd5b600754600160a060020a0390811691161490565b6000806000fd5b60096020526000908152604090205481565b600260036000909192565b600654600160a060020a031681565b600080600160a060020a038a161515610e8257600080fd5b600160a060020a0389161515610e9757600080fd5b861580610eab575086610ea8611354565b11155b1515610eb657600080fd5b600854604080517fea2aa0a1be11a07ed86d755c93467f4f82362b452371d1ba94d1715123511acb602080830191909152600160a060020a03808f16838501528d166060830152608082018c905260a082018b905289151560c0808401919091528351808403909101815260e090920192839052815191929182918401908083835b60208310610f575780518252601f199092019160209182019101610f38565b51815160209384036101000a6000190180199092169116179052604080519290940182900382207f190100000000000000000000000000000000000000000000000000000000000083830152602283019790975260428083019790975283518083039097018752606290910192839052855192945084935085019190508083835b60208310610ff75780518252601f199092019160209182019101610fd8565b51815160209384036101000a600019018019909216911617905260408051929094018290038220600080845283830180875282905260ff8d1684870152606084018c9052608084018b905294519098506001965060a080840196509194601f19820194509281900390910191865af1158015611077573d6000803e3d6000fd5b50505060206040510351600160a060020a03168a600160a060020a03161415156110a057600080fd5b600160a060020a038a16600090815260096020526040902080546001810190915588146110cc57600080fd5b856110d85760006110dc565b6000195b600160a060020a03808c166000908152600560209081526040808320938e16835292905220819055905085611112576000611114565b865b600160a060020a03808c166000818152600a60209081526040808320948f1680845294825291829020949094558051858152905192939192600080516020611a13833981519152929181900390910190a350505050505050505050565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156107a75780601f1061077c576101008083540402835291602001916107a7565b6000610a718383610cd8565b60006111e383836113ef565b15156111ee57600080fd5b6111f9338484611358565b50600192915050565b610dec338383610863565b611218838383610863565b50505050565b600754600160a060020a031690565b336000908152600560209081526040808320600160a060020a0386168452909152812054611261908363ffffffff61134116565b336000818152600560209081526040808320600160a060020a038916808552908352928190208590558051948552519193600080516020611a13833981519152929081900390910190a350600192915050565b600160a060020a03918216600090815260056020908152604080832093909416825291909152205490565b610dec823383610863565b600654600160a060020a0316331461130157600080fd5b610c9e816116ac565b600a60209081526000928352604080842090915290825290205481565b6000903b1190565b60008282111561133b57fe5b50900390565b8181018281101561134e57fe5b92915050565b4290565b61136182611327565b80156113885750604080516000815260208101909152611386908490849084906113fb565b155b15610dec5761139682610e23565b156113a057600080fd5b60408051600160a060020a0380861682528416602082015280820183905290517f11249f0fc79fc134a15a10d1da8291b79515bf987e036ced05b9ec119614070b9181900360600190a1505050565b6000610a71838361172a565b600083600160a060020a031663a4c0ed367c0100000000000000000000000000000000000000000000000000000000028685856040516024018084600160a060020a0316600160a060020a0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561148c578181015183820152602001611474565b50505050905090810190601f1680156114b95780820380516001836020036101000a031916815260200191505b5060408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909916989098178852518151919790965086955093509150819050838360005b8381101561154757818101518382015260200161152f565b50505050905090810190601f1680156115745780820380516001836020036101000a031916815260200191505b509150506000604051808303816000865af1979650505050505050565b600160a060020a0382166000908152600360205260409020548111156115b657600080fd5b600160a060020a0382166000908152600360205260409020546115df908263ffffffff61132f16565b600160a060020a03831660009081526003602052604090205560045461160b908263ffffffff61132f16565b600455604080518281529051600160a060020a038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a2604080518281529051600091600160a060020a038516916000805160206119f38339815191529181900360200190a35050565b600160a060020a038216151561169e57611699816117f9565b6116a8565b6116a88282611805565b5050565b600160a060020a03811615156116c157600080fd5b600654604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b3360009081526003602052604081205482111561174657600080fd5b600160a060020a038316151561175b57600080fd5b3360009081526003602052604090205461177b908363ffffffff61132f16565b3360009081526003602052604080822092909255600160a060020a038516815220546117ad908363ffffffff61134116565b600160a060020a0384166000818152600360209081526040918290209390935580518581529051919233926000805160206119f38339815191529281900390910190a350600192915050565b30316116a882826118a3565b604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290518391600091600160a060020a038416916370a0823191602480830192602092919082900301818787803b15801561186a57600080fd5b505af115801561187e573d6000803e3d6000fd5b505050506040513d602081101561189457600080fd5b5051905061121884848361190b565b604051600160a060020a0383169082156108fc029083906000818181858888f1935050505015156116a85780826118d86119c2565b600160a060020a039091168152604051908190036020019082f080158015611904573d6000803e3d6000fd5b5050505050565b60408051600160a060020a03841660248201526044808201849052825180830390910181526064909101909152602081810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781528251606093600093909290918491828a5af160005193508392508080156101b65750506000835111156119ba578115156119ba57600080fd5b505050505050565b6040516021806119d2833901905600608060405260405160208060218339810160405251600160a060020a038116ff00ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a165627a7a72305820da715ff88e0288dbae664bb8af2f148726bdc8c499fecf88153280d022031e780029") newContractCode := hexutility.FromHex("0x6080604052600436106101b35763ffffffff60e060020a60003504166305d2035b81146101b857806306fdde03146101e1578063095ea7b31461026b5780630b26cf661461028f57806318160ddd146102b257806323b872dd146102d957806330adf81f14610303578063313ce567146103185780633644e5151461034357806339509351146103585780634000aea01461037c57806340c10f19146103ad57806342966c68146103d157806354fd4d50146103e957806366188463146103fe57806369ffa08a1461042257806370a0823114610449578063715018a61461046a578063726600ce1461047f5780637d64bcb4146104a05780637ecebe00146104b5578063859ba28c146104d65780638da5cb5b146105175780638fcbaf0c1461054857806395d89b4114610586578063a457c2d71461059b578063a9059cbb146105bf578063b753a98c146105e3578063bb35783b14610607578063c6a1dedf14610631578063cd59658314610646578063d505accf1461065b578063d73dd62314610694578063dd62ed3e146106b8578063f2d5d56b146106df578063f2fde38b14610703578063ff9e884d14610724575b600080fd5b3480156101c457600080fd5b506101cd61074b565b604080519115158252519081900360200190f35b3480156101ed57600080fd5b506101f661076c565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610230578181015183820152602001610218565b50505050905090810190601f16801561025d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561027757600080fd5b506101cd600160a060020a03600435166024356107fa565b34801561029b57600080fd5b506102b0600160a060020a0360043516610810565b005b3480156102be57600080fd5b506102c761086a565b60408051918252519081900360200190f35b3480156102e557600080fd5b506101cd600160a060020a0360043581169060243516604435610870565b34801561030f57600080fd5b506102c7610a38565b34801561032457600080fd5b5061032d610a5c565b6040805160ff9092168252519081900360200190f35b34801561034f57600080fd5b506102c7610a65565b34801561036457600080fd5b506101cd600160a060020a0360043516602435610a6b565b34801561038857600080fd5b506101cd60048035600160a060020a0316906024803591604435918201910135610aac565b3480156103b957600080fd5b506101cd600160a060020a0360043516602435610bbd565b3480156103dd57600080fd5b506102b0600435610cc8565b3480156103f557600080fd5b506101f6610cd5565b34801561040a57600080fd5b506101cd600160a060020a0360043516602435610d0c565b34801561042e57600080fd5b506102b0600160a060020a0360043581169060243516610de9565b34801561045557600080fd5b506102c7600160a060020a0360043516610e0e565b34801561047657600080fd5b506102b0610e29565b34801561048b57600080fd5b506101cd600160a060020a0360043516610e40565b3480156104ac57600080fd5b506101cd610e54565b3480156104c157600080fd5b506102c7600160a060020a0360043516610e5b565b3480156104e257600080fd5b506104eb610e6d565b6040805167ffffffffffffffff9485168152928416602084015292168183015290519081900360600190f35b34801561052357600080fd5b5061052c610e78565b60408051600160a060020a039092168252519081900360200190f35b34801561055457600080fd5b506102b0600160a060020a0360043581169060243516604435606435608435151560ff60a4351660c43560e435610e87565b34801561059257600080fd5b506101f6610fc5565b3480156105a757600080fd5b506101cd600160a060020a036004351660243561101f565b3480156105cb57600080fd5b506101cd600160a060020a0360043516602435611032565b3480156105ef57600080fd5b506102b0600160a060020a0360043516602435611054565b34801561061357600080fd5b506102b0600160a060020a0360043581169060243516604435611064565b34801561063d57600080fd5b506102c7611075565b34801561065257600080fd5b5061052c611099565b34801561066757600080fd5b506102b0600160a060020a036004358116906024351660443560643560ff6084351660a43560c4356110a8565b3480156106a057600080fd5b506101cd600160a060020a0360043516602435611184565b3480156106c457600080fd5b506102c7600160a060020a036004358116906024351661120b565b3480156106eb57600080fd5b506102b0600160a060020a0360043516602435611236565b34801561070f57600080fd5b506102b0600160a060020a0360043516611241565b34801561073057600080fd5b506102c7600160a060020a0360043581169060243516611261565b60065474010000000000000000000000000000000000000000900460ff1681565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156107f25780601f106107c7576101008083540402835291602001916107f2565b820191906000526020600020905b8154815290600101906020018083116107d557829003601f168201915b505050505081565b600061080733848461127e565b50600192915050565b600654600160a060020a0316331461082757600080fd5b610830816112c0565b151561083b57600080fd5b6007805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60045490565b600080600160a060020a038516151561088857600080fd5b600160a060020a038416151561089d57600080fd5b600160a060020a0385166000908152600360205260409020546108c6908463ffffffff6112c816565b600160a060020a0380871660009081526003602052604080822093909355908616815220546108fb908463ffffffff6112da16565b600160a060020a038086166000818152600360209081526040918290209490945580518781529051919392891692600080516020611d7283398151915292918290030190a3600160a060020a0385163314610a225761095a853361120b565b905060001981146109c457610975818463ffffffff6112c816565b600160a060020a038616600081815260056020908152604080832033808552908352928190208590558051948552519193600080516020611d92833981519152929081900390910190a3610a22565b600160a060020a0385166000908152600a602090815260408083203384529091529020541580610a175750600160a060020a0385166000908152600a602090815260408083203384529091529020544211155b1515610a2257600080fd5b610a2d8585856112ed565b506001949350505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b60025460ff1681565b60085481565b336000818152600560209081526040808320600160a060020a03871684529091528120549091610807918590610aa7908663ffffffff6112da16565b61127e565b600084600160a060020a03811615801590610ad05750600160a060020a0381163014155b1515610adb57600080fd5b610ae58686611324565b1515610af057600080fd5b85600160a060020a031633600160a060020a03167fe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c16878787604051808481526020018060200182810382528484828181526020019250808284376040519201829003965090945050505050a3610b65866112c0565b15610bb157610ba633878787878080601f01602080910402602001604051908101604052809392919081815260200183838082843750611330945050505050565b1515610bb157600080fd5b50600195945050505050565b600654600090600160a060020a03163314610bd757600080fd5b60065474010000000000000000000000000000000000000000900460ff1615610bff57600080fd5b600454610c12908363ffffffff6112da16565b600455600160a060020a038316600090815260036020526040902054610c3e908363ffffffff6112da16565b600160a060020a038416600081815260036020908152604091829020939093558051858152905191927f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d412139688592918290030190a2604080518381529051600160a060020a03851691600091600080516020611d728339815191529181900360200190a350600192915050565b610cd233826114ad565b50565b60408051808201909152600181527f3100000000000000000000000000000000000000000000000000000000000000602082015281565b336000908152600560209081526040808320600160a060020a0386168452909152812054808310610d6057336000908152600560209081526040808320600160a060020a0388168452909152812055610d95565b610d70818463ffffffff6112c816565b336000908152600560209081526040808320600160a060020a03891684529091529020555b336000818152600560209081526040808320600160a060020a038916808552908352928190205481519081529051929392600080516020611d92833981519152929181900390910190a35060019392505050565b600654600160a060020a03163314610e0057600080fd5b610e0a828261159c565b5050565b600160a060020a031660009081526003602052604090205490565b600654600160a060020a031633146101b357600080fd5b600754600160a060020a0390811691161490565b6000806000fd5b60096020526000908152604090205481565b600260056000909192565b600654600160a060020a031681565b600080861580610e975750864211155b1515610ea257600080fd5b604080517fea2aa0a1be11a07ed86d755c93467f4f82362b452371d1ba94d1715123511acb6020820152600160a060020a03808d16828401528b166060820152608081018a905260a0810189905287151560c0808301919091528251808303909101815260e0909101909152610f17906115da565b9150610f25828686866116e1565b600160a060020a038b8116911614610f3c57600080fd5b600160a060020a038a1660009081526009602052604090208054600181019091558814610f6857600080fd5b85610f74576000610f78565b6000195b905085610f86576000610f88565b865b600160a060020a03808c166000908152600a60209081526040808320938e1683529290522055610fb98a8a836118e3565b50505050505050505050565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156107f25780601f106107c7576101008083540402835291602001916107f2565b600061102b8383610d0c565b9392505050565b600061103e8383611324565b151561104957600080fd5b6108073384846112ed565b61105f338383610870565b505050565b61106f838383610870565b50505050565b7fea2aa0a1be11a07ed86d755c93467f4f82362b452371d1ba94d1715123511acb81565b600754600160a060020a031690565b600080428610156110b857600080fd5b600160a060020a03808a1660008181526009602090815260409182902080546001810190915582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c99281019290925281830193909352928b166060840152608083018a905260a0830182905260c08084018a90528151808503909101815260e090930190529250611149906115da565b9050611157818686866116e1565b600160a060020a038a811691161461116e57600080fd5b61117989898961127e565b505050505050505050565b336000908152600560209081526040808320600160a060020a03861684529091528120546111b8908363ffffffff6112da16565b336000818152600560209081526040808320600160a060020a038916808552908352928190208590558051948552519193600080516020611d92833981519152929081900390910190a350600192915050565b600160a060020a03918216600090815260056020908152604080832093909416825291909152205490565b61105f823383610870565b600654600160a060020a0316331461125857600080fd5b610cd281611a3e565b600a60209081526000928352604080842090915290825290205481565b6112898383836118e3565b60001981141561105f57600160a060020a038084166000908152600a60209081526040808320938616835292905290812055505050565b6000903b1190565b6000828211156112d457fe5b50900390565b818101828110156112e757fe5b92915050565b6112f682610e40565b1561105f5760408051600081526020810190915261131990849084908490611330565b151561105f57600080fd5b600061102b8383611abc565b600083600160a060020a031663a4c0ed3660e060020a028685856040516024018084600160a060020a0316600160a060020a0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156113a8578181015183820152602001611390565b50505050905090810190601f1680156113d55780820380516001836020036101000a031916815260200191505b5060408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909916989098178852518151919790965086955093509150819050838360005b8381101561146357818101518382015260200161144b565b50505050905090810190601f1680156114905780820380516001836020036101000a031916815260200191505b509150506000604051808303816000865af1979650505050505050565b600160a060020a0382166000908152600360205260409020548111156114d257600080fd5b600160a060020a0382166000908152600360205260409020546114fb908263ffffffff6112c816565b600160a060020a038316600090815260036020526040902055600454611527908263ffffffff6112c816565b600455604080518281529051600160a060020a038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a2604080518281529051600091600160a060020a03851691600080516020611d728339815191529181900360200190a35050565b80600160a060020a03811615156115b257600080fd5b600160a060020a03831615156115d0576115cb82611b8b565b61105f565b61105f8383611b97565b6000600854826040518082805190602001908083835b6020831061160f5780518252601f1990920191602091820191016115f0565b51815160209384036101000a6000190180199092169116179052604080519290940182900382207f190100000000000000000000000000000000000000000000000000000000000083830152602283019790975260428083019790975283518083039097018752606290910192839052855192945084935085019190508083835b602083106116af5780518252601f199092019160209182019101611690565b5181516020939093036101000a6000190180199091169216919091179052604051920182900390912095945050505050565b6000808460ff16601b14806116f957508460ff16601c145b1515611775576040805160e560020a62461bcd02815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c60448201527f7565000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115611813576040805160e560020a62461bcd02815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f7565000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60408051600080825260208083018085528a905260ff8916838501526060830188905260808301879052925160019360a0808501949193601f19840193928390039091019190865af115801561186d573d6000803e3d6000fd5b5050604051601f190151915050600160a060020a03811615156118da576040805160e560020a62461bcd02815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b95945050505050565b600160a060020a0383161515611968576040805160e560020a62461bcd028152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03821615156119ee576040805160e560020a62461bcd02815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0380841660008181526005602090815260408083209487168084529482529182902085905581518581529151600080516020611d928339815191529281900390910190a3505050565b600160a060020a0381161515611a5357600080fd5b600654604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b33600090815260036020526040812054821115611ad857600080fd5b600160a060020a0383161515611aed57600080fd5b33600090815260036020526040902054611b0d908363ffffffff6112c816565b3360009081526003602052604080822092909255600160a060020a03851681522054611b3f908363ffffffff6112da16565b600160a060020a038416600081815260036020908152604091829020939093558051858152905191923392600080516020611d728339815191529281900390910190a350600192915050565b3031610e0a8282611c44565b604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290518391600091600160a060020a038416916370a0823191602480830192602092919082900301818787803b158015611bfc57600080fd5b505af1158015611c10573d6000803e3d6000fd5b505050506040513d6020811015611c2657600080fd5b5051905061106f600160a060020a038516848363ffffffff611cac16565b604051600160a060020a0383169082156108fc029083906000818181858888f193505050501515610e0a578082611c79611d41565b600160a060020a039091168152604051908190036020019082f080158015611ca5573d6000803e3d6000fd5b5050505050565b82600160a060020a031663a9059cbb83836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050600060405180830381600087803b158015611d0f57600080fd5b505af1158015611d23573d6000803e3d6000fd5b505050503d1561105f5760206000803e600051151561105f57600080fd5b604051602180611d51833901905600608060405260405160208060218339810160405251600160a060020a038116ff00ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a165627a7a72305820b96bb0733a3e45fdddafa592f51114d0cf16cad047ad60b9b91ae91eb772c6940029") - codeHash, err := common.HashData(oldContractCode) + codeHash, err := libcommon.HashData(oldContractCode) if err != nil { panic("could not get code hash from old gnosis token contract") } @@ -74,7 +73,7 @@ func addGnosisSpecialCase() { CodeHash: codeHash, }) - codeHash, err = common.HashData(newContractCode) + codeHash, err = libcommon.HashData(newContractCode) if err != nil { panic("could not get code hash from new gnosis token contract") } diff --git a/core/types/access_list_tx.go b/core/types/access_list_tx.go index 562205d3327..0f6131ea91e 100644 --- a/core/types/access_list_tx.go +++ b/core/types/access_list_tx.go @@ -28,9 +28,9 @@ import ( "github.com/ledgerwatch/erigon-lib/chain" libcommon "github.com/ledgerwatch/erigon-lib/common" + rlp2 "github.com/ledgerwatch/erigon-lib/rlp" types2 "github.com/ledgerwatch/erigon-lib/types" - "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/common/u256" "github.com/ledgerwatch/erigon/rlp" ) @@ -52,7 +52,7 @@ func (tx AccessListTx) copy() *AccessListTx { }, Nonce: tx.Nonce, To: tx.To, // TODO: copy pointed-to address - Data: common.CopyBytes(tx.Data), + Data: libcommon.CopyBytes(tx.Data), Gas: tx.Gas, // These are copied below. Value: new(uint256.Int), @@ -93,13 +93,8 @@ func (tx *AccessListTx) Unwrap() Transaction { // EncodingSize returns the RLP encoding size of the whole transaction envelope func (tx AccessListTx) EncodingSize() int { payloadSize, _, _, _ := tx.payloadSize() - envelopeSize := payloadSize // Add envelope size and type size - if payloadSize >= 56 { - envelopeSize += libcommon.BitLenToByteLen(bits.Len(uint(payloadSize))) - } - envelopeSize += 2 - return envelopeSize + return 1 + rlp2.ListPrefixLen(payloadSize) + payloadSize } // payloadSize calculates the RLP encoding size of transaction, without TxType and envelope @@ -127,26 +122,10 @@ func (tx AccessListTx) payloadSize() (payloadSize int, nonceLen, gasLen, accessL payloadSize++ payloadSize += rlp.Uint256LenExcludingHead(tx.Value) // size of Data - payloadSize++ - switch len(tx.Data) { - case 0: - case 1: - if tx.Data[0] >= 128 { - payloadSize++ - } - default: - if len(tx.Data) >= 56 { - payloadSize += libcommon.BitLenToByteLen(bits.Len(uint(len(tx.Data)))) - } - payloadSize += len(tx.Data) - } + payloadSize += rlp2.StringLen(tx.Data) // size of AccessList - payloadSize++ accessListLen = accessListSize(tx.AccessList) - if accessListLen >= 56 { - payloadSize += libcommon.BitLenToByteLen(bits.Len(uint(accessListLen))) - } - payloadSize += accessListLen + payloadSize += rlp2.ListPrefixLen(accessListLen) + accessListLen // size of V payloadSize++ payloadSize += rlp.Uint256LenExcludingHead(&tx.V) @@ -164,18 +143,10 @@ func accessListSize(al types2.AccessList) int { for _, tuple := range al { tupleLen := 21 // For the address // size of StorageKeys - tupleLen++ // Each storage key takes 33 bytes storageLen := 33 * len(tuple.StorageKeys) - if storageLen >= 56 { - tupleLen += libcommon.BitLenToByteLen(bits.Len(uint(storageLen))) // BE encoding of the length of the storage keys - } - tupleLen += storageLen - accessListLen++ - if tupleLen >= 56 { - accessListLen += libcommon.BitLenToByteLen(bits.Len(uint(tupleLen))) // BE encoding of the length of the storage keys - } - accessListLen += tupleLen + tupleLen += rlp2.ListPrefixLen(storageLen) + storageLen + accessListLen += rlp2.ListPrefixLen(tupleLen) + tupleLen } return accessListLen } @@ -183,13 +154,9 @@ func accessListSize(al types2.AccessList) int { func encodeAccessList(al types2.AccessList, w io.Writer, b []byte) error { for _, tuple := range al { tupleLen := 21 - tupleLen++ // Each storage key takes 33 bytes storageLen := 33 * len(tuple.StorageKeys) - if storageLen >= 56 { - tupleLen += libcommon.BitLenToByteLen(bits.Len(uint(storageLen))) // BE encoding of the length of the storage keys - } - tupleLen += storageLen + tupleLen += rlp2.ListPrefixLen(storageLen) + storageLen if err := EncodeStructSizePrefix(tupleLen, w, b); err != nil { return err } @@ -320,12 +287,8 @@ func (tx AccessListTx) encodePayload(w io.Writer, b []byte, payloadSize, nonceLe // EncodeRLP implements rlp.Encoder func (tx AccessListTx) EncodeRLP(w io.Writer) error { payloadSize, nonceLen, gasLen, accessListLen := tx.payloadSize() - envelopeSize := payloadSize - if payloadSize >= 56 { - envelopeSize += libcommon.BitLenToByteLen(bits.Len(uint(payloadSize))) - } // size of struct prefix and TxType - envelopeSize += 2 + envelopeSize := 1 + rlp2.ListPrefixLen(payloadSize) + payloadSize var b [33]byte // envelope if err := rlp.EncodeStringSizePrefix(envelopeSize, w, b[:]); err != nil { diff --git a/core/types/accounts/account.go b/core/types/accounts/account.go index 1953249c652..a2c284042c7 100644 --- a/core/types/accounts/account.go +++ b/core/types/accounts/account.go @@ -8,6 +8,7 @@ import ( "github.com/holiman/uint256" libcommon "github.com/ledgerwatch/erigon-lib/common" + rlp2 "github.com/ledgerwatch/erigon-lib/rlp" "github.com/ledgerwatch/erigon/crypto" "github.com/ledgerwatch/erigon/rlp" @@ -77,8 +78,6 @@ func (a *Account) EncodingLengthForStorage() uint { } func (a *Account) EncodingLengthForHashing() uint { - var structLength uint - balanceBytes := 0 if !a.Balance.LtUint64(128) { balanceBytes = a.Balance.ByteLen() @@ -86,17 +85,11 @@ func (a *Account) EncodingLengthForHashing() uint { nonceBytes := rlp.IntLenExcludingHead(a.Nonce) - structLength += uint(balanceBytes + nonceBytes + 2) + structLength := balanceBytes + nonceBytes + 2 structLength += 66 // Two 32-byte arrays + 2 prefixes - if structLength < 56 { - return 1 + structLength - } - - lengthBytes := libcommon.BitLenToByteLen(bits.Len(structLength)) - - return uint(1+lengthBytes) + structLength + return uint(rlp2.ListPrefixLen(structLength) + structLength) } func (a *Account) EncodeForStorage(buffer []byte) { diff --git a/core/types/accounts/account_proof.go b/core/types/accounts/account_proof.go index 7653445d1d1..9239e6b3fcf 100644 --- a/core/types/accounts/account_proof.go +++ b/core/types/accounts/account_proof.go @@ -2,9 +2,8 @@ package accounts import ( libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "github.com/ledgerwatch/erigon-lib/common/hexutility" - - "github.com/ledgerwatch/erigon/common/hexutil" ) // Result structs for GetProof diff --git a/core/types/blob_tx.go b/core/types/blob_tx.go index dfe03c44c58..d2bede77c40 100644 --- a/core/types/blob_tx.go +++ b/core/types/blob_tx.go @@ -4,13 +4,13 @@ import ( "fmt" "io" "math/big" - "math/bits" "github.com/holiman/uint256" "github.com/ledgerwatch/erigon-lib/chain" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/fixedgas" + rlp2 "github.com/ledgerwatch/erigon-lib/rlp" types2 "github.com/ledgerwatch/erigon-lib/types" "github.com/ledgerwatch/erigon/rlp" @@ -102,12 +102,8 @@ func (stx BlobTx) payloadSize() (payloadSize, nonceLen, gasLen, accessListLen, b payloadSize++ payloadSize += rlp.Uint256LenExcludingHead(stx.MaxFeePerBlobGas) // size of BlobVersionedHashes - payloadSize++ blobHashesLen = blobVersionedHashesSize(stx.BlobVersionedHashes) - if blobHashesLen >= 56 { - payloadSize += libcommon.BitLenToByteLen(bits.Len(uint(blobHashesLen))) - } - payloadSize += blobHashesLen + payloadSize += rlp2.ListPrefixLen(blobHashesLen) + blobHashesLen return } @@ -202,12 +198,8 @@ func (stx BlobTx) encodePayload(w io.Writer, b []byte, payloadSize, nonceLen, ga func (stx BlobTx) EncodeRLP(w io.Writer) error { payloadSize, nonceLen, gasLen, accessListLen, blobHashesLen := stx.payloadSize() - envelopeSize := payloadSize - if payloadSize >= 56 { - envelopeSize += libcommon.BitLenToByteLen(bits.Len(uint(payloadSize))) - } // size of struct prefix and TxType - envelopeSize += 2 + envelopeSize := 1 + rlp2.ListPrefixLen(payloadSize) + payloadSize var b [33]byte // envelope if err := rlp.EncodeStringSizePrefix(envelopeSize, w, b[:]); err != nil { diff --git a/core/types/block.go b/core/types/block.go index 8aa2f23d5a2..af025683318 100644 --- a/core/types/block.go +++ b/core/types/block.go @@ -22,9 +22,9 @@ import ( "encoding/binary" "errors" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "io" "math/big" - "math/bits" "reflect" "sync/atomic" @@ -34,7 +34,6 @@ import ( rlp2 "github.com/ledgerwatch/erigon-lib/rlp" "github.com/ledgerwatch/erigon/common" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/rlp" ) @@ -128,25 +127,11 @@ func (h *Header) EncodingSize() int { encodingSize++ encodingSize += rlp.IntLenExcludingHead(h.Time) // size of Extra - encodingSize++ - switch len(h.Extra) { - case 0: - case 1: - if h.Extra[0] >= 128 { - encodingSize++ - } - default: - if len(h.Extra) >= 56 { - encodingSize += libcommon.BitLenToByteLen(bits.Len(uint(len(h.Extra)))) - } - encodingSize += len(h.Extra) - } + encodingSize += rlp2.StringLen(h.Extra) if len(h.AuRaSeal) != 0 { - encodingSize += 1 + rlp.IntLenExcludingHead(h.AuRaStep) + 1 + len(h.AuRaSeal) - if len(h.AuRaSeal) >= 56 { - encodingSize += libcommon.BitLenToByteLen(bits.Len(uint(len(h.AuRaSeal)))) - } + encodingSize += 1 + rlp.IntLenExcludingHead(h.AuRaStep) + encodingSize += rlp2.ListPrefixLen(len(h.AuRaSeal)) + len(h.AuRaSeal) } else { encodingSize += 33 /* MixDigest */ + 9 /* BlockNonce */ } @@ -175,26 +160,12 @@ func (h *Header) EncodingSize() int { if h.Verkle { // Encoding of Verkle Proof - encodingSize++ - switch len(h.VerkleProof) { - case 0: - case 1: - if h.VerkleProof[0] >= 128 { - encodingSize++ - } - default: - if len(h.VerkleProof) >= 56 { - encodingSize += libcommon.BitLenToByteLen(bits.Len(uint(len(h.VerkleProof)))) - } - encodingSize += len(h.VerkleProof) - } - encodingSize++ - + encodingSize += rlp2.StringLen(h.VerkleProof) var tmpBuffer bytes.Buffer if err := rlp.Encode(&tmpBuffer, h.VerkleKeyVals); err != nil { panic(err) } - encodingSize += tmpBuffer.Len() + encodingSize += rlp2.ListPrefixLen(tmpBuffer.Len()) + tmpBuffer.Len() } return encodingSize @@ -698,45 +669,25 @@ func (rb RawBody) EncodingSize() int { func (rb RawBody) payloadSize() (payloadSize, txsLen, unclesLen, withdrawalsLen int) { // size of Transactions - payloadSize++ for _, tx := range rb.Transactions { txsLen += len(tx) } - if txsLen >= 56 { - payloadSize += libcommon.BitLenToByteLen(bits.Len(uint(txsLen))) - } - payloadSize += txsLen + payloadSize += rlp2.ListPrefixLen(txsLen) + txsLen // size of Uncles - payloadSize++ for _, uncle := range rb.Uncles { - unclesLen++ uncleLen := uncle.EncodingSize() - if uncleLen >= 56 { - unclesLen += libcommon.BitLenToByteLen(bits.Len(uint(uncleLen))) - } - unclesLen += uncleLen - } - if unclesLen >= 56 { - payloadSize += libcommon.BitLenToByteLen(bits.Len(uint(unclesLen))) + unclesLen += rlp2.ListPrefixLen(uncleLen) + uncleLen } - payloadSize += unclesLen + payloadSize += rlp2.ListPrefixLen(unclesLen) + unclesLen // size of Withdrawals if rb.Withdrawals != nil { - payloadSize++ for _, withdrawal := range rb.Withdrawals { - withdrawalsLen++ withdrawalLen := withdrawal.EncodingSize() - if withdrawalLen >= 56 { - withdrawalLen += libcommon.BitLenToByteLen(bits.Len(uint(withdrawalLen))) - } - withdrawalsLen += withdrawalLen - } - if withdrawalsLen >= 56 { - payloadSize += libcommon.BitLenToByteLen(bits.Len(uint(withdrawalsLen))) + withdrawalsLen += rlp2.ListPrefixLen(withdrawalLen) + withdrawalLen } - payloadSize += withdrawalsLen + payloadSize += rlp2.ListPrefixLen(withdrawalsLen) + withdrawalsLen } return payloadSize, txsLen, unclesLen, withdrawalsLen @@ -853,9 +804,6 @@ func (rb *RawBody) DecodeRLP(s *rlp.Stream) error { } func (bfs BodyForStorage) payloadSize() (payloadSize, unclesLen, withdrawalsLen int) { - - payloadSize++ - baseTxIdLen := 1 + rlp.IntLenExcludingHead(bfs.BaseTxId) txAmountLen := 1 + rlp.IntLenExcludingHead(uint64(bfs.TxAmount)) @@ -864,33 +812,18 @@ func (bfs BodyForStorage) payloadSize() (payloadSize, unclesLen, withdrawalsLen // size of Uncles for _, uncle := range bfs.Uncles { - unclesLen++ uncleLen := uncle.EncodingSize() - if uncleLen >= 56 { - unclesLen += libcommon.BitLenToByteLen(bits.Len(uint(uncleLen))) - } - unclesLen += uncleLen - } - if unclesLen >= 56 { - payloadSize += libcommon.BitLenToByteLen(bits.Len(uint(unclesLen))) + unclesLen += rlp2.ListPrefixLen(uncleLen) + uncleLen } - payloadSize += unclesLen + payloadSize += rlp2.ListPrefixLen(unclesLen) + unclesLen // size of Withdrawals if bfs.Withdrawals != nil { - payloadSize++ for _, withdrawal := range bfs.Withdrawals { - withdrawalsLen++ withdrawalLen := withdrawal.EncodingSize() - if withdrawalLen >= 56 { - withdrawalLen += libcommon.BitLenToByteLen(bits.Len(uint(withdrawalLen))) - } - withdrawalsLen += withdrawalLen + withdrawalsLen += rlp2.ListPrefixLen(withdrawalLen) + withdrawalLen } - if withdrawalsLen >= 56 { - payloadSize += libcommon.BitLenToByteLen(bits.Len(uint(withdrawalsLen))) - } - payloadSize += withdrawalsLen + payloadSize += rlp2.ListPrefixLen(withdrawalsLen) + withdrawalsLen } return payloadSize, unclesLen, withdrawalsLen @@ -1012,50 +945,26 @@ func (bb Body) EncodingSize() int { func (bb Body) payloadSize() (payloadSize int, txsLen, unclesLen, withdrawalsLen int) { // size of Transactions - payloadSize++ for _, tx := range bb.Transactions { - txsLen++ txLen := tx.EncodingSize() - if txLen >= 56 { - txsLen += libcommon.BitLenToByteLen(bits.Len(uint(txLen))) - } - txsLen += txLen + txsLen += rlp2.ListPrefixLen(txLen) + txLen } - if txsLen >= 56 { - payloadSize += libcommon.BitLenToByteLen(bits.Len(uint(txsLen))) - } - payloadSize += txsLen + payloadSize += rlp2.ListPrefixLen(txsLen) + txsLen // size of Uncles - payloadSize++ for _, uncle := range bb.Uncles { - unclesLen++ uncleLen := uncle.EncodingSize() - if uncleLen >= 56 { - unclesLen += libcommon.BitLenToByteLen(bits.Len(uint(uncleLen))) - } - unclesLen += uncleLen + unclesLen += rlp2.ListPrefixLen(uncleLen) + uncleLen } - if unclesLen >= 56 { - payloadSize += libcommon.BitLenToByteLen(bits.Len(uint(unclesLen))) - } - payloadSize += unclesLen + payloadSize += rlp2.ListPrefixLen(unclesLen) + unclesLen // size of Withdrawals if bb.Withdrawals != nil { - payloadSize++ for _, withdrawal := range bb.Withdrawals { - withdrawalsLen++ withdrawalLen := withdrawal.EncodingSize() - if withdrawalLen >= 56 { - withdrawalLen += libcommon.BitLenToByteLen(bits.Len(uint(withdrawalLen))) - } - withdrawalsLen += withdrawalLen + withdrawalsLen += rlp2.ListPrefixLen(withdrawalLen) + withdrawalLen } - if withdrawalsLen >= 56 { - payloadSize += libcommon.BitLenToByteLen(bits.Len(uint(withdrawalsLen))) - } - payloadSize += withdrawalsLen + payloadSize += rlp2.ListPrefixLen(withdrawalsLen) + withdrawalsLen } return payloadSize, txsLen, unclesLen, withdrawalsLen @@ -1359,58 +1268,30 @@ func (bb *Block) DecodeRLP(s *rlp.Stream) error { func (bb Block) payloadSize() (payloadSize int, txsLen, unclesLen, withdrawalsLen int) { // size of Header - payloadSize++ headerLen := bb.header.EncodingSize() - if headerLen >= 56 { - payloadSize += libcommon.BitLenToByteLen(bits.Len(uint(headerLen))) - } - payloadSize += headerLen + payloadSize += rlp2.ListPrefixLen(headerLen) + headerLen // size of Transactions - payloadSize++ for _, tx := range bb.transactions { - txsLen++ txLen := tx.EncodingSize() - if txLen >= 56 { - txsLen += libcommon.BitLenToByteLen(bits.Len(uint(txLen))) - } - txsLen += txLen - } - if txsLen >= 56 { - payloadSize += libcommon.BitLenToByteLen(bits.Len(uint(txsLen))) + txsLen += rlp2.ListPrefixLen(txLen) + txLen } - payloadSize += txsLen + payloadSize += rlp2.ListPrefixLen(txsLen) + txsLen // size of Uncles - payloadSize++ for _, uncle := range bb.uncles { - unclesLen++ uncleLen := uncle.EncodingSize() - if uncleLen >= 56 { - unclesLen += libcommon.BitLenToByteLen(bits.Len(uint(uncleLen))) - } - unclesLen += uncleLen - } - if unclesLen >= 56 { - payloadSize += libcommon.BitLenToByteLen(bits.Len(uint(unclesLen))) + unclesLen += rlp2.ListPrefixLen(uncleLen) + uncleLen } - payloadSize += unclesLen + payloadSize += rlp2.ListPrefixLen(unclesLen) + unclesLen // size of Withdrawals if bb.withdrawals != nil { - payloadSize++ for _, withdrawal := range bb.withdrawals { - withdrawalsLen++ withdrawalLen := withdrawal.EncodingSize() - if withdrawalLen >= 56 { - withdrawalLen += libcommon.BitLenToByteLen(bits.Len(uint(withdrawalLen))) - } - withdrawalsLen += withdrawalLen - } - if withdrawalsLen >= 56 { - payloadSize += libcommon.BitLenToByteLen(bits.Len(uint(withdrawalsLen))) + withdrawalsLen += rlp2.ListPrefixLen(withdrawalLen) + withdrawalLen } - payloadSize += withdrawalsLen + payloadSize += rlp2.ListPrefixLen(withdrawalsLen) + withdrawalsLen } return payloadSize, txsLen, unclesLen, withdrawalsLen @@ -1494,7 +1375,7 @@ func (b *Block) ParentHash() libcommon.Hash { return b.header.ParentHash } func (b *Block) TxHash() libcommon.Hash { return b.header.TxHash } func (b *Block) ReceiptHash() libcommon.Hash { return b.header.ReceiptHash } func (b *Block) UncleHash() libcommon.Hash { return b.header.UncleHash } -func (b *Block) Extra() []byte { return common.CopyBytes(b.header.Extra) } +func (b *Block) Extra() []byte { return libcommon.CopyBytes(b.header.Extra) } func (b *Block) BaseFee() *big.Int { if b.header.BaseFee == nil { return nil diff --git a/core/types/block_test.go b/core/types/block_test.go index be05c716b26..63f2f907932 100644 --- a/core/types/block_test.go +++ b/core/types/block_test.go @@ -64,7 +64,7 @@ func TestBlockEncoding(t *testing.T) { check("Size", block.Size(), common.StorageSize(len(blockEnc))) var tx1 Transaction = NewTransaction(0, libcommon.HexToAddress("095e7baea6a6c7c4c2dfeb977efac326af552d87"), uint256.NewInt(10), 50000, uint256.NewInt(10), nil) - tx1, _ = tx1.WithSignature(*LatestSignerForChainID(nil), common.Hex2Bytes("9bea4c4daac7c7c52e093e6a4c35dbbcf8856f1af7b059ba20253e70848d094f8a8fae537ce25ed8cb5af9adac3f141af69bd515bd2ba031522df09b97dd72b100")) + tx1, _ = tx1.WithSignature(*LatestSignerForChainID(nil), libcommon.Hex2Bytes("9bea4c4daac7c7c52e093e6a4c35dbbcf8856f1af7b059ba20253e70848d094f8a8fae537ce25ed8cb5af9adac3f141af69bd515bd2ba031522df09b97dd72b100")) check("len(Transactions)", len(block.Transactions()), 1) check("Transactions[0].Hash", block.Transactions()[0].Hash(), tx1.Hash()) ourBlockEnc, err := rlp.EncodeToBytes(&block) @@ -102,7 +102,7 @@ func TestEIP1559BlockEncoding(t *testing.T) { check("BaseFee", block.BaseFee(), new(big.Int).SetUint64(params.InitialBaseFee)) var tx1 Transaction = NewTransaction(0, libcommon.HexToAddress("095e7baea6a6c7c4c2dfeb977efac326af552d87"), new(uint256.Int).SetUint64(10), 50000, new(uint256.Int).SetUint64(10), nil) - tx1, _ = tx1.WithSignature(*LatestSignerForChainID(nil), common.Hex2Bytes("9bea4c4daac7c7c52e093e6a4c35dbbcf8856f1af7b059ba20253e70848d094f8a8fae537ce25ed8cb5af9adac3f141af69bd515bd2ba031522df09b97dd72b100")) + tx1, _ = tx1.WithSignature(*LatestSignerForChainID(nil), libcommon.Hex2Bytes("9bea4c4daac7c7c52e093e6a4c35dbbcf8856f1af7b059ba20253e70848d094f8a8fae537ce25ed8cb5af9adac3f141af69bd515bd2ba031522df09b97dd72b100")) addr := libcommon.HexToAddress("0x0000000000000000000000000000000000000001") accesses := types2.AccessList{types2.AccessTuple{ @@ -125,7 +125,7 @@ func TestEIP1559BlockEncoding(t *testing.T) { Tip: u256.Num0, AccessList: accesses, } - tx2, err := tx2.WithSignature(*LatestSignerForChainID(big.NewInt(1)), common.Hex2Bytes("fe38ca4e44a30002ac54af7cf922a6ac2ba11b7d22f548e8ecb3f51f41cb31b06de6a5cbae13c0c856e33acf021b51819636cfc009d39eafb9f606d546e305a800")) + tx2, err := tx2.WithSignature(*LatestSignerForChainID(big.NewInt(1)), libcommon.Hex2Bytes("fe38ca4e44a30002ac54af7cf922a6ac2ba11b7d22f548e8ecb3f51f41cb31b06de6a5cbae13c0c856e33acf021b51819636cfc009d39eafb9f606d546e305a800")) if err != nil { t.Fatal("invalid signature error: ", err) } @@ -177,7 +177,7 @@ func TestEIP2718BlockEncoding(t *testing.T) { }, GasPrice: ten, } - sig := common.Hex2Bytes("9bea4c4daac7c7c52e093e6a4c35dbbcf8856f1af7b059ba20253e70848d094f8a8fae537ce25ed8cb5af9adac3f141af69bd515bd2ba031522df09b97dd72b100") + sig := libcommon.Hex2Bytes("9bea4c4daac7c7c52e093e6a4c35dbbcf8856f1af7b059ba20253e70848d094f8a8fae537ce25ed8cb5af9adac3f141af69bd515bd2ba031522df09b97dd72b100") tx1, _ = tx1.WithSignature(*LatestSignerForChainID(nil), sig) chainID, _ := uint256.FromBig(big.NewInt(1)) @@ -195,7 +195,7 @@ func TestEIP2718BlockEncoding(t *testing.T) { }, AccessList: types2.AccessList{{Address: addr, StorageKeys: []libcommon.Hash{{0}}}}, } - sig2 := common.Hex2Bytes("3dbacc8d0259f2508625e97fdfc57cd85fdd16e5821bc2c10bdd1a52649e8335476e10695b183a87b0aa292a7f4b78ef0c3fbe62aa2c42c84e1d9c3da159ef1401") + sig2 := libcommon.Hex2Bytes("3dbacc8d0259f2508625e97fdfc57cd85fdd16e5821bc2c10bdd1a52649e8335476e10695b183a87b0aa292a7f4b78ef0c3fbe62aa2c42c84e1d9c3da159ef1401") tx2, _ = tx2.WithSignature(*LatestSignerForChainID(big.NewInt(1)), sig2) check("len(Transactions)", len(block.Transactions()), 2) @@ -319,12 +319,12 @@ func TestCanEncodeAndDecodeRawBody(t *testing.T) { if err != nil { t.Fatal(err) } - rlpBytes := common.CopyBytes(writer.Bytes()) + rlpBytes := libcommon.CopyBytes(writer.Bytes()) writer.Reset() writer.WriteString(hexutility.Encode(rlpBytes)) var rawBody RawBody - fromHex := common.CopyBytes(common.FromHex(writer.String())) + fromHex := libcommon.CopyBytes(common.FromHex(writer.String())) bodyReader := bytes.NewReader(fromHex) stream := rlp.NewStream(bodyReader, 0) diff --git a/core/types/bor_receipt.go b/core/types/bor_receipt.go index a993de490c4..16b30605a9d 100644 --- a/core/types/bor_receipt.go +++ b/core/types/bor_receipt.go @@ -1,13 +1,13 @@ package types import ( + "github.com/ledgerwatch/erigon-lib/kv/dbutils" "math/big" "sort" "github.com/holiman/uint256" libcommon "github.com/ledgerwatch/erigon-lib/common" - "github.com/ledgerwatch/erigon/common/dbutils" "github.com/ledgerwatch/erigon/crypto" ) diff --git a/core/types/dynamic_fee_tx.go b/core/types/dynamic_fee_tx.go index 0fa8b865569..5ee0cf037d9 100644 --- a/core/types/dynamic_fee_tx.go +++ b/core/types/dynamic_fee_tx.go @@ -21,15 +21,14 @@ import ( "fmt" "io" "math/big" - "math/bits" "github.com/holiman/uint256" "github.com/ledgerwatch/erigon-lib/chain" libcommon "github.com/ledgerwatch/erigon-lib/common" + rlp2 "github.com/ledgerwatch/erigon-lib/rlp" types2 "github.com/ledgerwatch/erigon-lib/types" - "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/common/u256" "github.com/ledgerwatch/erigon/rlp" ) @@ -82,7 +81,7 @@ func (tx DynamicFeeTransaction) copy() *DynamicFeeTransaction { }, Nonce: tx.Nonce, To: tx.To, // TODO: copy pointed-to address - Data: common.CopyBytes(tx.Data), + Data: libcommon.CopyBytes(tx.Data), Gas: tx.Gas, // These are copied below. Value: new(uint256.Int), @@ -117,13 +116,8 @@ func (tx DynamicFeeTransaction) GetAccessList() types2.AccessList { func (tx DynamicFeeTransaction) EncodingSize() int { payloadSize, _, _, _ := tx.payloadSize() - envelopeSize := payloadSize // Add envelope size and type size - if payloadSize >= 56 { - envelopeSize += libcommon.BitLenToByteLen(bits.Len(uint(payloadSize))) - } - envelopeSize += 2 - return envelopeSize + return 1 + rlp2.ListPrefixLen(payloadSize) + payloadSize } func (tx DynamicFeeTransaction) payloadSize() (payloadSize int, nonceLen, gasLen, accessListLen int) { @@ -153,26 +147,10 @@ func (tx DynamicFeeTransaction) payloadSize() (payloadSize int, nonceLen, gasLen payloadSize++ payloadSize += rlp.Uint256LenExcludingHead(tx.Value) // size of Data - payloadSize++ - switch len(tx.Data) { - case 0: - case 1: - if tx.Data[0] >= 128 { - payloadSize++ - } - default: - if len(tx.Data) >= 56 { - payloadSize += libcommon.BitLenToByteLen(bits.Len(uint(len(tx.Data)))) - } - payloadSize += len(tx.Data) - } + payloadSize += rlp2.StringLen(tx.Data) // size of AccessList - payloadSize++ accessListLen = accessListSize(tx.AccessList) - if accessListLen >= 56 { - payloadSize += libcommon.BitLenToByteLen(bits.Len(uint(accessListLen))) - } - payloadSize += accessListLen + payloadSize += rlp2.ListPrefixLen(accessListLen) + accessListLen // size of V payloadSize++ payloadSize += rlp.Uint256LenExcludingHead(&tx.V) @@ -296,12 +274,8 @@ func (tx DynamicFeeTransaction) encodePayload(w io.Writer, b []byte, payloadSize func (tx DynamicFeeTransaction) EncodeRLP(w io.Writer) error { payloadSize, nonceLen, gasLen, accessListLen := tx.payloadSize() - envelopeSize := payloadSize - if payloadSize >= 56 { - envelopeSize += libcommon.BitLenToByteLen(bits.Len(uint(payloadSize))) - } // size of struct prefix and TxType - envelopeSize += 2 + envelopeSize := 1 + rlp2.ListPrefixLen(payloadSize) + payloadSize var b [33]byte // envelope if err := rlp.EncodeStringSizePrefix(envelopeSize, w, b[:]); err != nil { diff --git a/core/types/gen_erigon_log_json.go b/core/types/gen_erigon_log_json.go index 2360e2fdba0..02e6505047c 100644 --- a/core/types/gen_erigon_log_json.go +++ b/core/types/gen_erigon_log_json.go @@ -5,11 +5,10 @@ package types import ( "encoding/json" "errors" + "github.com/ledgerwatch/erigon-lib/common/hexutil" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/hexutility" - - "github.com/ledgerwatch/erigon/common/hexutil" ) var _ = (*logMarshaling)(nil) diff --git a/core/types/gen_header_json.go b/core/types/gen_header_json.go index 17b70798b48..9eee9eeb7d2 100644 --- a/core/types/gen_header_json.go +++ b/core/types/gen_header_json.go @@ -5,12 +5,11 @@ package types import ( "encoding/json" "errors" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "math/big" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/hexutility" - - "github.com/ledgerwatch/erigon/common/hexutil" ) var _ = (*headerMarshaling)(nil) diff --git a/core/types/gen_log_json.go b/core/types/gen_log_json.go index e3db5873dc4..abd1dfd2ebe 100644 --- a/core/types/gen_log_json.go +++ b/core/types/gen_log_json.go @@ -5,11 +5,10 @@ package types import ( "encoding/json" "errors" + "github.com/ledgerwatch/erigon-lib/common/hexutil" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/hexutility" - - "github.com/ledgerwatch/erigon/common/hexutil" ) var _ = (*logMarshaling)(nil) diff --git a/core/types/gen_receipt_json.go b/core/types/gen_receipt_json.go index 8a898648386..34b64b591b7 100644 --- a/core/types/gen_receipt_json.go +++ b/core/types/gen_receipt_json.go @@ -5,12 +5,11 @@ package types import ( "encoding/json" "errors" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "math/big" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/hexutility" - - "github.com/ledgerwatch/erigon/common/hexutil" ) var _ = (*receiptMarshaling)(nil) diff --git a/core/types/gen_withdrawal_json.go b/core/types/gen_withdrawal_json.go index c56eb61537d..6ed318cc54b 100644 --- a/core/types/gen_withdrawal_json.go +++ b/core/types/gen_withdrawal_json.go @@ -4,9 +4,9 @@ package types import ( "encoding/json" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "github.com/ledgerwatch/erigon-lib/common" - "github.com/ledgerwatch/erigon/common/hexutil" ) var _ = (*withdrawalMarshaling)(nil) diff --git a/core/types/hashing_test.go b/core/types/hashing_test.go index 5150a5b9a08..1a9ab1c1472 100644 --- a/core/types/hashing_test.go +++ b/core/types/hashing_test.go @@ -8,7 +8,6 @@ import ( "github.com/holiman/uint256" libcommon "github.com/ledgerwatch/erigon-lib/common" - "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/rlp" "github.com/ledgerwatch/erigon/turbo/trie" ) @@ -84,7 +83,7 @@ func legacyDeriveSha(list DerivableList) libcommon.Hash { valbuf.Reset() _ = rlp.Encode(keybuf, uint(i)) list.EncodeIndex(i, valbuf) - trie.Update(keybuf.Bytes(), common.CopyBytes(valbuf.Bytes())) + trie.Update(keybuf.Bytes(), libcommon.CopyBytes(valbuf.Bytes())) } return trie.Hash() } diff --git a/core/types/legacy_tx.go b/core/types/legacy_tx.go index 92c12f2f964..7e183d6b630 100644 --- a/core/types/legacy_tx.go +++ b/core/types/legacy_tx.go @@ -21,14 +21,13 @@ import ( "fmt" "io" "math/big" - "math/bits" "github.com/holiman/uint256" "github.com/ledgerwatch/erigon-lib/chain" libcommon "github.com/ledgerwatch/erigon-lib/common" + rlp2 "github.com/ledgerwatch/erigon-lib/rlp" types2 "github.com/ledgerwatch/erigon-lib/types" - "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/common/u256" "github.com/ledgerwatch/erigon/rlp" ) @@ -175,7 +174,7 @@ func (tx LegacyTx) copy() *LegacyTx { }, Nonce: tx.Nonce, To: tx.To, // TODO: copy pointed-to address - Data: common.CopyBytes(tx.Data), + Data: libcommon.CopyBytes(tx.Data), Gas: tx.Gas, // These are initialized below. Value: new(uint256.Int), @@ -215,19 +214,7 @@ func (tx LegacyTx) payloadSize() (payloadSize int, nonceLen, gasLen int) { payloadSize++ payloadSize += rlp.Uint256LenExcludingHead(tx.Value) // size of Data - payloadSize++ - switch len(tx.Data) { - case 0: - case 1: - if tx.Data[0] >= 128 { - payloadSize++ - } - default: - if len(tx.Data) >= 56 { - payloadSize += libcommon.BitLenToByteLen(bits.Len(uint(len(tx.Data)))) - } - payloadSize += len(tx.Data) - } + payloadSize += rlp2.StringLen(tx.Data) // size of V payloadSize++ payloadSize += rlp.Uint256LenExcludingHead(&tx.V) diff --git a/core/types/log.go b/core/types/log.go index 552300f49a6..f566bf0c372 100644 --- a/core/types/log.go +++ b/core/types/log.go @@ -17,12 +17,12 @@ package types import ( + "github.com/ledgerwatch/erigon-lib/common/hexutil" "io" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/hexutility" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/rlp" ) diff --git a/core/types/log_test.go b/core/types/log_test.go index 408bb33aaef..26efcdba990 100644 --- a/core/types/log_test.go +++ b/core/types/log_test.go @@ -19,13 +19,12 @@ package types import ( "encoding/json" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "reflect" "testing" "github.com/davecgh/go-spew/spew" libcommon "github.com/ledgerwatch/erigon-lib/common" - - "github.com/ledgerwatch/erigon/common/hexutil" ) var unmarshalLogTests = map[string]struct { diff --git a/core/types/receipt.go b/core/types/receipt.go index bc3a4d9a7ba..e5689de13f0 100644 --- a/core/types/receipt.go +++ b/core/types/receipt.go @@ -20,13 +20,13 @@ import ( "bytes" "errors" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "io" "math/big" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/hexutility" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/crypto" "github.com/ledgerwatch/erigon/rlp" ) diff --git a/core/types/transaction.go b/core/types/transaction.go index 71f6f729aa9..079b008791d 100644 --- a/core/types/transaction.go +++ b/core/types/transaction.go @@ -35,7 +35,6 @@ import ( "github.com/ledgerwatch/erigon-lib/common/fixedgas" types2 "github.com/ledgerwatch/erigon-lib/types" - "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/common/math" "github.com/ledgerwatch/erigon/crypto" "github.com/ledgerwatch/erigon/rlp" @@ -246,7 +245,7 @@ func MarshalTransactionsBinary(txs Transactions) ([][]byte, error) { if err != nil { return nil, err } - result[i] = common.CopyBytes(buf.Bytes()) + result[i] = libcommon.CopyBytes(buf.Bytes()) } return result, nil } diff --git a/core/types/transaction_marshalling.go b/core/types/transaction_marshalling.go index c2d460a6643..b529e517988 100644 --- a/core/types/transaction_marshalling.go +++ b/core/types/transaction_marshalling.go @@ -4,6 +4,7 @@ import ( "encoding/json" "errors" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "github.com/holiman/uint256" "github.com/valyala/fastjson" @@ -11,8 +12,6 @@ import ( libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/hexutility" types2 "github.com/ledgerwatch/erigon-lib/types" - - "github.com/ledgerwatch/erigon/common/hexutil" ) // txJSON is the JSON representation of transactions. diff --git a/core/types/transaction_signing_test.go b/core/types/transaction_signing_test.go index 76e306528ea..62b642ea484 100644 --- a/core/types/transaction_signing_test.go +++ b/core/types/transaction_signing_test.go @@ -23,7 +23,6 @@ import ( "github.com/holiman/uint256" libcommon "github.com/ledgerwatch/erigon-lib/common" - "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/crypto" ) @@ -116,7 +115,7 @@ func TestEIP155SigningVitalik(t *testing.T) { } { signer := LatestSignerForChainID(big.NewInt(1)) - tx, err := DecodeTransaction(common.Hex2Bytes(test.txRlp)) + tx, err := DecodeTransaction(libcommon.Hex2Bytes(test.txRlp)) if err != nil { t.Errorf("%d: %v", i, err) continue diff --git a/core/types/transaction_test.go b/core/types/transaction_test.go index 5d19a9b49dd..a48f58a9a84 100644 --- a/core/types/transaction_test.go +++ b/core/types/transaction_test.go @@ -63,7 +63,7 @@ var ( common.FromHex("5544"), ).WithSignature( *LatestSignerForChainID(nil), - common.Hex2Bytes("98ff921201554726367d2be8c804a7ff89ccf285ebc57dff8ae4c44b9c19ac4a8887321be575c8095f789dd4c743dfe42c1820f9231f98a962b210e3ac2452a301"), + libcommon.Hex2Bytes("98ff921201554726367d2be8c804a7ff89ccf285ebc57dff8ae4c44b9c19ac4a8887321be575c8095f789dd4c743dfe42c1820f9231f98a962b210e3ac2452a301"), ) emptyEip2718Tx = &AccessListTx{ @@ -82,7 +82,7 @@ var ( signedEip2718Tx, _ = emptyEip2718Tx.WithSignature( *LatestSignerForChainID(big.NewInt(1)), - common.Hex2Bytes("c9519f4f2b30335884581971573fadf60c6204f59a911df35ee8a540456b266032f1e8e2c5dd761f9e4f88f41c8310aeaba26a8bfcdacfedfa12ec3862d3752101"), + libcommon.Hex2Bytes("c9519f4f2b30335884581971573fadf60c6204f59a911df35ee8a540456b266032f1e8e2c5dd761f9e4f88f41c8310aeaba26a8bfcdacfedfa12ec3862d3752101"), ) dynFeeTx = &DynamicFeeTransaction{ @@ -100,7 +100,7 @@ var ( signedDynFeeTx, _ = dynFeeTx.WithSignature( *LatestSignerForChainID(big.NewInt(1)), - common.Hex2Bytes("c9519f4f2b30335884581971573fadf60c6204f59a911df35ee8a540456b266032f1e8e2c5dd761f9e4f88f41c8310aeaba26a8bfcdacfedfa12ec3862d3752101"), + libcommon.Hex2Bytes("c9519f4f2b30335884581971573fadf60c6204f59a911df35ee8a540456b266032f1e8e2c5dd761f9e4f88f41c8310aeaba26a8bfcdacfedfa12ec3862d3752101"), ) ) @@ -290,7 +290,7 @@ func defaultTestKey() (*ecdsa.PrivateKey, libcommon.Address) { func TestRecipientEmpty(t *testing.T) { _, addr := defaultTestKey() - tx, err := decodeTx(common.Hex2Bytes("f8498080808080011ca09b16de9d5bdee2cf56c28d16275a4da68cd30273e2525f3959f5d62557489921a0372ebd8fb3345f7db7b5a86d42e24d36e983e259b0664ceb8c227ec9af572f3d")) + tx, err := decodeTx(libcommon.Hex2Bytes("f8498080808080011ca09b16de9d5bdee2cf56c28d16275a4da68cd30273e2525f3959f5d62557489921a0372ebd8fb3345f7db7b5a86d42e24d36e983e259b0664ceb8c227ec9af572f3d")) if err != nil { t.Fatal(err) } @@ -307,7 +307,7 @@ func TestRecipientEmpty(t *testing.T) { func TestRecipientNormal(t *testing.T) { _, addr := defaultTestKey() - tx, err := decodeTx(common.Hex2Bytes("f85d80808094000000000000000000000000000000000000000080011ca0527c0d8f5c63f7b9f41324a7c8a563ee1190bcbf0dac8ab446291bdbf32f5c79a0552c4ef0a09a04395074dab9ed34d3fbfb843c2f2546cc30fe89ec143ca94ca6")) + tx, err := decodeTx(libcommon.Hex2Bytes("f85d80808094000000000000000000000000000000000000000080011ca0527c0d8f5c63f7b9f41324a7c8a563ee1190bcbf0dac8ab446291bdbf32f5c79a0552c4ef0a09a04395074dab9ed34d3fbfb843c2f2546cc30fe89ec143ca94ca6")) if err != nil { t.Fatal(err) } diff --git a/core/types/withdrawal.go b/core/types/withdrawal.go index ba34a02b40a..5dede6a0abc 100644 --- a/core/types/withdrawal.go +++ b/core/types/withdrawal.go @@ -19,12 +19,12 @@ package types import ( "bytes" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "io" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/types/clonable" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/rlp" ) diff --git a/core/vm/analysis_test.go b/core/vm/analysis_test.go index fba400b69d4..59bb36addec 100644 --- a/core/vm/analysis_test.go +++ b/core/vm/analysis_test.go @@ -22,7 +22,6 @@ import ( "github.com/holiman/uint256" libcommon "github.com/ledgerwatch/erigon-lib/common" - "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/crypto" ) @@ -63,7 +62,7 @@ func BenchmarkJumpdestAnalysisEmpty_1200k(bench *testing.B) { } func BenchmarkJumpdestAnalysis_1200k(bench *testing.B) { - code := common.Hex2Bytes("6060604052361561006c5760e060020a600035046308551a53811461007457806335a063b4146100865780633fa4f245146100a6578063590e1ae3146100af5780637150d8ae146100cf57806373fac6f0146100e1578063c19d93fb146100fe578063d696069714610112575b610131610002565b610133600154600160a060020a031681565b610131600154600160a060020a0390811633919091161461015057610002565b61014660005481565b610131600154600160a060020a039081163391909116146102d557610002565b610133600254600160a060020a031681565b610131600254600160a060020a0333811691161461023757610002565b61014660025460ff60a060020a9091041681565b61013160025460009060ff60a060020a9091041681146101cc57610002565b005b600160a060020a03166060908152602090f35b6060908152602090f35b60025460009060a060020a900460ff16811461016b57610002565b600154600160a060020a03908116908290301631606082818181858883f150506002805460a060020a60ff02191660a160020a179055506040517f72c874aeff0b183a56e2b79c71b46e1aed4dee5e09862134b8821ba2fddbf8bf9250a150565b80546002023414806101dd57610002565b6002805460a060020a60ff021973ffffffffffffffffffffffffffffffffffffffff1990911633171660a060020a1790557fd5d55c8a68912e9a110618df8d5e2e83b8d83211c57a8ddd1203df92885dc881826060a15050565b60025460019060a060020a900460ff16811461025257610002565b60025460008054600160a060020a0390921691606082818181858883f150508354604051600160a060020a0391821694503090911631915082818181858883f150506002805460a060020a60ff02191660a160020a179055506040517fe89152acd703c9d8c7d28829d443260b411454d45394e7995815140c8cbcbcf79250a150565b60025460019060a060020a900460ff1681146102f057610002565b6002805460008054600160a060020a0390921692909102606082818181858883f150508354604051600160a060020a0391821694503090911631915082818181858883f150506002805460a060020a60ff02191660a160020a179055506040517f8616bbbbad963e4e65b1366f1d75dfb63f9e9704bbbf91fb01bec70849906cf79250a15056") + code := libcommon.Hex2Bytes("6060604052361561006c5760e060020a600035046308551a53811461007457806335a063b4146100865780633fa4f245146100a6578063590e1ae3146100af5780637150d8ae146100cf57806373fac6f0146100e1578063c19d93fb146100fe578063d696069714610112575b610131610002565b610133600154600160a060020a031681565b610131600154600160a060020a0390811633919091161461015057610002565b61014660005481565b610131600154600160a060020a039081163391909116146102d557610002565b610133600254600160a060020a031681565b610131600254600160a060020a0333811691161461023757610002565b61014660025460ff60a060020a9091041681565b61013160025460009060ff60a060020a9091041681146101cc57610002565b005b600160a060020a03166060908152602090f35b6060908152602090f35b60025460009060a060020a900460ff16811461016b57610002565b600154600160a060020a03908116908290301631606082818181858883f150506002805460a060020a60ff02191660a160020a179055506040517f72c874aeff0b183a56e2b79c71b46e1aed4dee5e09862134b8821ba2fddbf8bf9250a150565b80546002023414806101dd57610002565b6002805460a060020a60ff021973ffffffffffffffffffffffffffffffffffffffff1990911633171660a060020a1790557fd5d55c8a68912e9a110618df8d5e2e83b8d83211c57a8ddd1203df92885dc881826060a15050565b60025460019060a060020a900460ff16811461025257610002565b60025460008054600160a060020a0390921691606082818181858883f150508354604051600160a060020a0391821694503090911631915082818181858883f150506002805460a060020a60ff02191660a160020a179055506040517fe89152acd703c9d8c7d28829d443260b411454d45394e7995815140c8cbcbcf79250a150565b60025460019060a060020a900460ff1681146102f057610002565b6002805460008054600160a060020a0390921692909102606082818181858883f150508354604051600160a060020a0391821694503090911631915082818181858883f150506002805460a060020a60ff02191660a160020a179055506040517f8616bbbbad963e4e65b1366f1d75dfb63f9e9704bbbf91fb01bec70849906cf79250a15056") bench.ResetTimer() for i := 0; i < bench.N; i++ { codeBitmap(code) @@ -82,7 +81,7 @@ func BenchmarkJumpdestHashing_1200k(bench *testing.B) { } func BenchmarkJumpDest(b *testing.B) { - code := common.Hex2Bytes("6060604052361561006c5760e060020a600035046308551a53811461007457806335a063b4146100865780633fa4f245146100a6578063590e1ae3146100af5780637150d8ae146100cf57806373fac6f0146100e1578063c19d93fb146100fe578063d696069714610112575b610131610002565b610133600154600160a060020a031681565b610131600154600160a060020a0390811633919091161461015057610002565b61014660005481565b610131600154600160a060020a039081163391909116146102d557610002565b610133600254600160a060020a031681565b610131600254600160a060020a0333811691161461023757610002565b61014660025460ff60a060020a9091041681565b61013160025460009060ff60a060020a9091041681146101cc57610002565b005b600160a060020a03166060908152602090f35b6060908152602090f35b60025460009060a060020a900460ff16811461016b57610002565b600154600160a060020a03908116908290301631606082818181858883f150506002805460a060020a60ff02191660a160020a179055506040517f72c874aeff0b183a56e2b79c71b46e1aed4dee5e09862134b8821ba2fddbf8bf9250a150565b80546002023414806101dd57610002565b6002805460a060020a60ff021973ffffffffffffffffffffffffffffffffffffffff1990911633171660a060020a1790557fd5d55c8a68912e9a110618df8d5e2e83b8d83211c57a8ddd1203df92885dc881826060a15050565b60025460019060a060020a900460ff16811461025257610002565b60025460008054600160a060020a0390921691606082818181858883f150508354604051600160a060020a0391821694503090911631915082818181858883f150506002805460a060020a60ff02191660a160020a179055506040517fe89152acd703c9d8c7d28829d443260b411454d45394e7995815140c8cbcbcf79250a150565b60025460019060a060020a900460ff1681146102f057610002565b6002805460008054600160a060020a0390921692909102606082818181858883f150508354604051600160a060020a0391821694503090911631915082818181858883f150506002805460a060020a60ff02191660a160020a179055506040517f8616bbbbad963e4e65b1366f1d75dfb63f9e9704bbbf91fb01bec70849906cf79250a15056") + code := libcommon.Hex2Bytes("6060604052361561006c5760e060020a600035046308551a53811461007457806335a063b4146100865780633fa4f245146100a6578063590e1ae3146100af5780637150d8ae146100cf57806373fac6f0146100e1578063c19d93fb146100fe578063d696069714610112575b610131610002565b610133600154600160a060020a031681565b610131600154600160a060020a0390811633919091161461015057610002565b61014660005481565b610131600154600160a060020a039081163391909116146102d557610002565b610133600254600160a060020a031681565b610131600254600160a060020a0333811691161461023757610002565b61014660025460ff60a060020a9091041681565b61013160025460009060ff60a060020a9091041681146101cc57610002565b005b600160a060020a03166060908152602090f35b6060908152602090f35b60025460009060a060020a900460ff16811461016b57610002565b600154600160a060020a03908116908290301631606082818181858883f150506002805460a060020a60ff02191660a160020a179055506040517f72c874aeff0b183a56e2b79c71b46e1aed4dee5e09862134b8821ba2fddbf8bf9250a150565b80546002023414806101dd57610002565b6002805460a060020a60ff021973ffffffffffffffffffffffffffffffffffffffff1990911633171660a060020a1790557fd5d55c8a68912e9a110618df8d5e2e83b8d83211c57a8ddd1203df92885dc881826060a15050565b60025460019060a060020a900460ff16811461025257610002565b60025460008054600160a060020a0390921691606082818181858883f150508354604051600160a060020a0391821694503090911631915082818181858883f150506002805460a060020a60ff02191660a160020a179055506040517fe89152acd703c9d8c7d28829d443260b411454d45394e7995815140c8cbcbcf79250a150565b60025460019060a060020a900460ff1681146102f057610002565b6002805460008054600160a060020a0390921692909102606082818181858883f150508354604051600160a060020a0391821694503090911631915082818181858883f150506002805460a060020a60ff02191660a160020a179055506040517f8616bbbbad963e4e65b1366f1d75dfb63f9e9704bbbf91fb01bec70849906cf79250a15056") pc := new(uint256.Int) hash := libcommon.Hash{1, 2, 3, 4, 5} diff --git a/core/vm/contracts.go b/core/vm/contracts.go index 90d7ed847d6..a9e0d684551 100644 --- a/core/vm/contracts.go +++ b/core/vm/contracts.go @@ -20,6 +20,7 @@ import ( "crypto/sha256" "encoding/binary" "errors" + "github.com/ledgerwatch/erigon-lib/crypto/blake2b" "math/big" "github.com/holiman/uint256" @@ -31,7 +32,6 @@ import ( "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/common/math" "github.com/ledgerwatch/erigon/crypto" - "github.com/ledgerwatch/erigon/crypto/blake2b" "github.com/ledgerwatch/erigon/crypto/bls12381" "github.com/ledgerwatch/erigon/crypto/bn256" diff --git a/core/vm/contracts_test.go b/core/vm/contracts_test.go index bb3a9eeda4f..e41f235ff44 100644 --- a/core/vm/contracts_test.go +++ b/core/vm/contracts_test.go @@ -96,7 +96,7 @@ var blake2FMalformedInputTests = []precompiledFailureTest{ func testPrecompiled(t *testing.T, addr string, test precompiledTest) { p := allPrecompiles[libcommon.HexToAddress(addr)] - in := common.Hex2Bytes(test.Input) + in := libcommon.Hex2Bytes(test.Input) gas := p.RequiredGas(in) t.Run(fmt.Sprintf("%s-Gas=%d", test.Name, gas), func(t *testing.T) { if res, _, err := RunPrecompiledContract(p, in, gas, nil); err != nil { @@ -108,7 +108,7 @@ func testPrecompiled(t *testing.T, addr string, test precompiledTest) { t.Errorf("%v: gas wrong, expected %d, got %d", test.Name, expGas, gas) } // Verify that the precompile did not touch the input buffer - exp := common.Hex2Bytes(test.Input) + exp := libcommon.Hex2Bytes(test.Input) if !bytes.Equal(in, exp) { t.Errorf("Precompiled %v modified input data", addr) } @@ -117,7 +117,7 @@ func testPrecompiled(t *testing.T, addr string, test precompiledTest) { func testPrecompiledOOG(t *testing.T, addr string, test precompiledTest) { p := allPrecompiles[libcommon.HexToAddress(addr)] - in := common.Hex2Bytes(test.Input) + in := libcommon.Hex2Bytes(test.Input) gas := p.RequiredGas(in) - 1 t.Run(fmt.Sprintf("%s-Gas=%d", test.Name, gas), func(t *testing.T) { @@ -126,7 +126,7 @@ func testPrecompiledOOG(t *testing.T, addr string, test precompiledTest) { t.Errorf("Expected error [out of gas], got [%v]", err) } // Verify that the precompile did not touch the input buffer - exp := common.Hex2Bytes(test.Input) + exp := libcommon.Hex2Bytes(test.Input) if !bytes.Equal(in, exp) { t.Errorf("Precompiled %v modified input data", addr) } @@ -135,7 +135,7 @@ func testPrecompiledOOG(t *testing.T, addr string, test precompiledTest) { func testPrecompiledFailure(addr string, test precompiledFailureTest, t *testing.T) { p := allPrecompiles[libcommon.HexToAddress(addr)] - in := common.Hex2Bytes(test.Input) + in := libcommon.Hex2Bytes(test.Input) gas := p.RequiredGas(in) t.Run(test.Name, func(t *testing.T) { _, _, err := RunPrecompiledContract(p, in, gas, nil) @@ -143,7 +143,7 @@ func testPrecompiledFailure(addr string, test precompiledFailureTest, t *testing t.Errorf("Expected error [%v], got [%v]", test.ExpectedError, err) } // Verify that the precompile did not touch the input buffer - exp := common.Hex2Bytes(test.Input) + exp := libcommon.Hex2Bytes(test.Input) if !bytes.Equal(in, exp) { t.Errorf("Precompiled %v modified input data", addr) } @@ -155,7 +155,7 @@ func benchmarkPrecompiled(b *testing.B, addr string, test precompiledTest) { return } p := allPrecompiles[libcommon.HexToAddress(addr)] - in := common.Hex2Bytes(test.Input) + in := libcommon.Hex2Bytes(test.Input) reqGas := p.RequiredGas(in) var ( diff --git a/core/vm/gas_table_test.go b/core/vm/gas_table_test.go index 7e3300a37ea..ec04ac97a02 100644 --- a/core/vm/gas_table_test.go +++ b/core/vm/gas_table_test.go @@ -19,6 +19,7 @@ package vm import ( "context" "errors" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "math" "strconv" "testing" @@ -28,7 +29,6 @@ import ( "github.com/ledgerwatch/erigon-lib/common/datadir" "github.com/ledgerwatch/erigon-lib/kv/memdb" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core/state" "github.com/ledgerwatch/erigon/core/state/temporal" "github.com/ledgerwatch/erigon/core/vm/evmtypes" diff --git a/core/vm/instructions.go b/core/vm/instructions.go index 12e0e44a002..a12edf62b6d 100644 --- a/core/vm/instructions.go +++ b/core/vm/instructions.go @@ -753,7 +753,7 @@ func opCall(pc *uint64, interpreter *EVMInterpreter, scope *ScopeContext) ([]byt } stack.Push(&temp) if err == nil || err == ErrExecutionReverted { - ret = common.CopyBytes(ret) + ret = libcommon.CopyBytes(ret) scope.Memory.Set(retOffset.Uint64(), retSize.Uint64(), ret) } @@ -791,7 +791,7 @@ func opCallCode(pc *uint64, interpreter *EVMInterpreter, scope *ScopeContext) ([ } stack.Push(&temp) if err == nil || err == ErrExecutionReverted { - ret = common.CopyBytes(ret) + ret = libcommon.CopyBytes(ret) scope.Memory.Set(retOffset.Uint64(), retSize.Uint64(), ret) } @@ -825,7 +825,7 @@ func opDelegateCall(pc *uint64, interpreter *EVMInterpreter, scope *ScopeContext } stack.Push(&temp) if err == nil || err == ErrExecutionReverted { - ret = common.CopyBytes(ret) + ret = libcommon.CopyBytes(ret) scope.Memory.Set(retOffset.Uint64(), retSize.Uint64(), ret) } @@ -859,7 +859,7 @@ func opStaticCall(pc *uint64, interpreter *EVMInterpreter, scope *ScopeContext) } stack.Push(&temp) if err == nil || err == ErrExecutionReverted { - ret = common.CopyBytes(ret) + ret = libcommon.CopyBytes(ret) scope.Memory.Set(retOffset.Uint64(), retSize.Uint64(), ret) } diff --git a/core/vm/instructions_test.go b/core/vm/instructions_test.go index cccd8a60031..9be8a4431a5 100644 --- a/core/vm/instructions_test.go +++ b/core/vm/instructions_test.go @@ -117,9 +117,9 @@ func testTwoOperandOp(t *testing.T, tests []TwoOperandTestcase, opFn executionFu ) for i, test := range tests { - x := new(uint256.Int).SetBytes(common.Hex2Bytes(test.X)) - y := new(uint256.Int).SetBytes(common.Hex2Bytes(test.Y)) - expected := new(uint256.Int).SetBytes(common.Hex2Bytes(test.Expected)) + x := new(uint256.Int).SetBytes(libcommon.Hex2Bytes(test.X)) + y := new(uint256.Int).SetBytes(libcommon.Hex2Bytes(test.Y)) + expected := new(uint256.Int).SetBytes(libcommon.Hex2Bytes(test.Expected)) stack.Push(x) stack.Push(y) opFn(&pc, evmInterpreter, &ScopeContext{nil, stack, nil}) @@ -230,10 +230,10 @@ func TestAddMod(t *testing.T) { // in 256 bit repr, fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd for i, test := range tests { - x := new(uint256.Int).SetBytes(common.Hex2Bytes(test.x)) - y := new(uint256.Int).SetBytes(common.Hex2Bytes(test.y)) - z := new(uint256.Int).SetBytes(common.Hex2Bytes(test.z)) - expected := new(uint256.Int).SetBytes(common.Hex2Bytes(test.expected)) + x := new(uint256.Int).SetBytes(libcommon.Hex2Bytes(test.x)) + y := new(uint256.Int).SetBytes(libcommon.Hex2Bytes(test.y)) + z := new(uint256.Int).SetBytes(libcommon.Hex2Bytes(test.z)) + expected := new(uint256.Int).SetBytes(libcommon.Hex2Bytes(test.expected)) stack.Push(z) stack.Push(y) stack.Push(x) @@ -305,7 +305,7 @@ func opBenchmark(b *testing.B, op executionFunc, args ...string) { // convert args byteArgs := make([][]byte, len(args)) for i, arg := range args { - byteArgs[i] = common.Hex2Bytes(arg) + byteArgs[i] = libcommon.Hex2Bytes(arg) } pc := uint64(0) b.ResetTimer() @@ -540,7 +540,7 @@ func TestOpMstore(t *testing.T) { mem.Resize(64) pc := uint64(0) v := "abcdef00000000000000abba000000000deaf000000c0de00100000000133700" - stack.PushN(*new(uint256.Int).SetBytes(common.Hex2Bytes(v)), *new(uint256.Int)) + stack.PushN(*new(uint256.Int).SetBytes(libcommon.Hex2Bytes(v)), *new(uint256.Int)) opMstore(&pc, evmInterpreter, &ScopeContext{mem, stack, nil}) if got := common.Bytes2Hex(mem.GetCopy(0, 32)); got != v { t.Fatalf("Mstore fail, got %v, expected %v", got, v) @@ -585,7 +585,7 @@ func TestOpTstore(t *testing.T) { contractRef = contractRef{caller} contract = NewContract(contractRef, to, u256.Num0, 0, false) scopeContext = ScopeContext{mem, stack, contract} - value = common.Hex2Bytes("abcdef00000000000000abba000000000deaf000000c0de00100000000133700") + value = libcommon.Hex2Bytes("abcdef00000000000000abba000000000deaf000000c0de00100000000133700") ) env.interpreter = evmInterpreter diff --git a/core/vm/runtime/runtime_example_test.go b/core/vm/runtime/runtime_example_test.go index c558d17d4fa..753e3f97f4c 100644 --- a/core/vm/runtime/runtime_example_test.go +++ b/core/vm/runtime/runtime_example_test.go @@ -18,8 +18,8 @@ package runtime_test import ( "fmt" + "github.com/ledgerwatch/erigon-lib/common" - "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/core/vm/runtime" ) diff --git a/core/vm/runtime/runtime_test.go b/core/vm/runtime/runtime_test.go index 40d334748e4..97359ae83e6 100644 --- a/core/vm/runtime/runtime_test.go +++ b/core/vm/runtime/runtime_test.go @@ -132,7 +132,7 @@ func TestCall(t *testing.T) { func BenchmarkCall(b *testing.B) { var definition = `[{"constant":true,"inputs":[],"name":"seller","outputs":[{"name":"","type":"address"}],"type":"function"},{"constant":false,"inputs":[],"name":"abort","outputs":[],"type":"function"},{"constant":true,"inputs":[],"name":"value","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":false,"inputs":[],"name":"refund","outputs":[],"type":"function"},{"constant":true,"inputs":[],"name":"buyer","outputs":[{"name":"","type":"address"}],"type":"function"},{"constant":false,"inputs":[],"name":"confirmReceived","outputs":[],"type":"function"},{"constant":true,"inputs":[],"name":"state","outputs":[{"name":"","type":"uint8"}],"type":"function"},{"constant":false,"inputs":[],"name":"confirmPurchase","outputs":[],"type":"function"},{"inputs":[],"type":"constructor"},{"anonymous":false,"inputs":[],"name":"Aborted","type":"event"},{"anonymous":false,"inputs":[],"name":"PurchaseConfirmed","type":"event"},{"anonymous":false,"inputs":[],"name":"ItemReceived","type":"event"},{"anonymous":false,"inputs":[],"name":"Refunded","type":"event"}]` - var code = common.Hex2Bytes("6060604052361561006c5760e060020a600035046308551a53811461007457806335a063b4146100865780633fa4f245146100a6578063590e1ae3146100af5780637150d8ae146100cf57806373fac6f0146100e1578063c19d93fb146100fe578063d696069714610112575b610131610002565b610133600154600160a060020a031681565b610131600154600160a060020a0390811633919091161461015057610002565b61014660005481565b610131600154600160a060020a039081163391909116146102d557610002565b610133600254600160a060020a031681565b610131600254600160a060020a0333811691161461023757610002565b61014660025460ff60a060020a9091041681565b61013160025460009060ff60a060020a9091041681146101cc57610002565b005b600160a060020a03166060908152602090f35b6060908152602090f35b60025460009060a060020a900460ff16811461016b57610002565b600154600160a060020a03908116908290301631606082818181858883f150506002805460a060020a60ff02191660a160020a179055506040517f72c874aeff0b183a56e2b79c71b46e1aed4dee5e09862134b8821ba2fddbf8bf9250a150565b80546002023414806101dd57610002565b6002805460a060020a60ff021973ffffffffffffffffffffffffffffffffffffffff1990911633171660a060020a1790557fd5d55c8a68912e9a110618df8d5e2e83b8d83211c57a8ddd1203df92885dc881826060a15050565b60025460019060a060020a900460ff16811461025257610002565b60025460008054600160a060020a0390921691606082818181858883f150508354604051600160a060020a0391821694503090911631915082818181858883f150506002805460a060020a60ff02191660a160020a179055506040517fe89152acd703c9d8c7d28829d443260b411454d45394e7995815140c8cbcbcf79250a150565b60025460019060a060020a900460ff1681146102f057610002565b6002805460008054600160a060020a0390921692909102606082818181858883f150508354604051600160a060020a0391821694503090911631915082818181858883f150506002805460a060020a60ff02191660a160020a179055506040517f8616bbbbad963e4e65b1366f1d75dfb63f9e9704bbbf91fb01bec70849906cf79250a15056") + var code = libcommon.Hex2Bytes("6060604052361561006c5760e060020a600035046308551a53811461007457806335a063b4146100865780633fa4f245146100a6578063590e1ae3146100af5780637150d8ae146100cf57806373fac6f0146100e1578063c19d93fb146100fe578063d696069714610112575b610131610002565b610133600154600160a060020a031681565b610131600154600160a060020a0390811633919091161461015057610002565b61014660005481565b610131600154600160a060020a039081163391909116146102d557610002565b610133600254600160a060020a031681565b610131600254600160a060020a0333811691161461023757610002565b61014660025460ff60a060020a9091041681565b61013160025460009060ff60a060020a9091041681146101cc57610002565b005b600160a060020a03166060908152602090f35b6060908152602090f35b60025460009060a060020a900460ff16811461016b57610002565b600154600160a060020a03908116908290301631606082818181858883f150506002805460a060020a60ff02191660a160020a179055506040517f72c874aeff0b183a56e2b79c71b46e1aed4dee5e09862134b8821ba2fddbf8bf9250a150565b80546002023414806101dd57610002565b6002805460a060020a60ff021973ffffffffffffffffffffffffffffffffffffffff1990911633171660a060020a1790557fd5d55c8a68912e9a110618df8d5e2e83b8d83211c57a8ddd1203df92885dc881826060a15050565b60025460019060a060020a900460ff16811461025257610002565b60025460008054600160a060020a0390921691606082818181858883f150508354604051600160a060020a0391821694503090911631915082818181858883f150506002805460a060020a60ff02191660a160020a179055506040517fe89152acd703c9d8c7d28829d443260b411454d45394e7995815140c8cbcbcf79250a150565b60025460019060a060020a900460ff1681146102f057610002565b6002805460008054600160a060020a0390921692909102606082818181858883f150508354604051600160a060020a0391821694503090911631915082818181858883f150506002805460a060020a60ff02191660a160020a179055506040517f8616bbbbad963e4e65b1366f1d75dfb63f9e9704bbbf91fb01bec70849906cf79250a15056") abi, err := abi.JSON(strings.NewReader(definition)) if err != nil { @@ -304,9 +304,9 @@ func TestBlockhash(t *testing.T) { */ // The contract above - data := common.Hex2Bytes("6080604052348015600f57600080fd5b50600436106045576000357c010000000000000000000000000000000000000000000000000000000090048063f8a8fd6d14604a575b600080fd5b60506074565b60405180848152602001838152602001828152602001935050505060405180910390f35b600080600080439050600080600083409050600184034092506000600290505b61010481101560c35760008186034090506000816001900414151560b6578093505b5080806001019150506094565b508083839650965096505050505090919256fea165627a7a72305820462d71b510c1725ff35946c20b415b0d50b468ea157c8c77dff9466c9cb85f560029") + data := libcommon.Hex2Bytes("6080604052348015600f57600080fd5b50600436106045576000357c010000000000000000000000000000000000000000000000000000000090048063f8a8fd6d14604a575b600080fd5b60506074565b60405180848152602001838152602001828152602001935050505060405180910390f35b600080600080439050600080600083409050600184034092506000600290505b61010481101560c35760008186034090506000816001900414151560b6578093505b5080806001019150506094565b508083839650965096505050505090919256fea165627a7a72305820462d71b510c1725ff35946c20b415b0d50b468ea157c8c77dff9466c9cb85f560029") // The method call to 'test()' - input := common.Hex2Bytes("f8a8fd6d") + input := libcommon.Hex2Bytes("f8a8fd6d") chain := &dummyChain{} ret, _, err := Execute(data, input, &Config{ GetHashFn: core.GetHashFn(header, chain.GetHeader), diff --git a/core/vm/testdata/precompiles/pointEvaluation.json b/core/vm/testdata/precompiles/pointEvaluation.json index bef9fc57713..ecee94aa7d0 100644 --- a/core/vm/testdata/precompiles/pointEvaluation.json +++ b/core/vm/testdata/precompiles/pointEvaluation.json @@ -1,6 +1,6 @@ [ { - "Input": "013c03613f6fc558fb7e61e75602241ed9a2f04e36d8670aadd286e71b5ca9cc00000000000000000000000000000000000000000000000000000000000000423c8e9f367d9c417c78ca1700993dae1987f44bd5e8ea33a7f62ebc6c35a2e53183fac17c3f237fc51f90e2c660eb202a438bc2025baded5cd193c1a018c5885bc9281ba704d5566082e851235c7be763b2a99adff965e0a121ee972ebc472d02944a74f5c6243e14052e105124b70bf65faf85ad3a494325e269fad097842cba", + "Input": "014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363066d928e13fe443e957d82e3e71d48cb65d51028eb4483e719bf8efcdf12f7c321a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06a444d6bb5aadc3ceb615b50d6606bd54bfe529f59247987cd1ab848d19de599a9052f1835fb0d0d44cf70183e19a68c9", "Expected": "000000000000000000000000000000000000000000000000000000000000100073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001", "Name": "pointEvaluation1", "Gas": 50000, diff --git a/crypto/crypto.go b/crypto/crypto.go index 17e592ba6a8..6d385075d92 100644 --- a/crypto/crypto.go +++ b/crypto/crypto.go @@ -24,6 +24,7 @@ import ( "encoding/hex" "errors" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "hash" "io" "math/big" @@ -35,7 +36,6 @@ import ( "github.com/ledgerwatch/erigon/crypto/cryptopool" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/common/math" "github.com/ledgerwatch/erigon/common/u256" "github.com/ledgerwatch/erigon/rlp" diff --git a/crypto/crypto_test.go b/crypto/crypto_test.go index 8f33c95f81d..b9a979bf8c2 100644 --- a/crypto/crypto_test.go +++ b/crypto/crypto_test.go @@ -20,6 +20,7 @@ import ( "bytes" "crypto/ecdsa" "encoding/hex" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "os" "reflect" "testing" @@ -30,7 +31,6 @@ import ( libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon/common" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/common/u256" ) diff --git a/crypto/signature_test.go b/crypto/signature_test.go index 2aef1113c14..1a033a96766 100644 --- a/crypto/signature_test.go +++ b/crypto/signature_test.go @@ -19,11 +19,11 @@ package crypto import ( "bytes" "crypto/ecdsa" + "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "reflect" "testing" - "github.com/ledgerwatch/erigon/common" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/common/math" ) diff --git a/diagnostics/peers.go b/diagnostics/peers.go index 2b25fda2923..260c60b3456 100644 --- a/diagnostics/peers.go +++ b/diagnostics/peers.go @@ -1,15 +1,41 @@ package diagnostics import ( - "context" "encoding/json" "net/http" - "github.com/ledgerwatch/erigon/p2p" + diagnint "github.com/ledgerwatch/erigon-lib/diagnostics" "github.com/ledgerwatch/erigon/turbo/node" "github.com/urfave/cli/v2" ) +type PeerNetworkInfo struct { + LocalAddress string `json:"localAddress"` // Local endpoint of the TCP data connection + RemoteAddress string `json:"remoteAddress"` // Remote endpoint of the TCP data connection + Inbound bool `json:"inbound"` + Trusted bool `json:"trusted"` + Static bool `json:"static"` + BytesIn uint64 `json:"bytesIn"` + BytesOut uint64 `json:"bytesOut"` + CapBytesIn map[string]uint64 `json:"capBytesIn"` + CapBytesOut map[string]uint64 `json:"capBytesOut"` + TypeBytesIn map[string]uint64 `json:"typeBytesIn"` + TypeBytesOut map[string]uint64 `json:"typeBytesOut"` +} + +type PeerResponse struct { + ENR string `json:"enr,omitempty"` // Ethereum Node Record + Enode string `json:"enode"` // Node URL + ID string `json:"id"` // Unique node identifier + Name string `json:"name"` // Name of the node, including client type, version, OS, custom data + ErrorCount int `json:"errorCount"` // Number of errors + LastSeenError string `json:"lastSeenError"` // Last seen error + Type string `json:"type"` // Type of connection + Caps []string `json:"caps"` // Protocols advertised by this peer + Network PeerNetworkInfo `json:"network"` + Protocols map[string]interface{} `json:"protocols"` // Sub-protocol specific metadata fields +} + func SetupPeersAccess(ctx *cli.Context, metricsMux *http.ServeMux, node *node.ErigonNode) { metricsMux.HandleFunc("/peers", func(w http.ResponseWriter, r *http.Request) { w.Header().Set("Access-Control-Allow-Origin", "*") @@ -19,34 +45,88 @@ func SetupPeersAccess(ctx *cli.Context, metricsMux *http.ServeMux, node *node.Er } func writePeers(w http.ResponseWriter, ctx *cli.Context, node *node.ErigonNode) { - reply, err := node.Backend().Peers(context.Background()) + sentinelPeers, err := sentinelPeers(node) + if err != nil { + http.Error(w, err.Error(), http.StatusInternalServerError) + return + } + sentryPeers, err := sentryPeers(node) if err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) return } - peers := make([]*p2p.PeerInfo, 0, len(reply.Peers)) - - for _, rpcPeer := range reply.Peers { - peer := p2p.PeerInfo{ - ENR: rpcPeer.Enr, - Enode: rpcPeer.Enode, - ID: rpcPeer.Id, - Name: rpcPeer.Name, - Caps: rpcPeer.Caps, - Network: struct { - LocalAddress string `json:"localAddress"` - RemoteAddress string `json:"remoteAddress"` - Inbound bool `json:"inbound"` - Trusted bool `json:"trusted"` - Static bool `json:"static"` - }{ - LocalAddress: rpcPeer.ConnLocalAddr, - RemoteAddress: rpcPeer.ConnRemoteAddr, - Inbound: rpcPeer.ConnIsInbound, - Trusted: rpcPeer.ConnIsTrusted, - Static: rpcPeer.ConnIsStatic, + allPeers := append(sentryPeers, sentinelPeers...) + + json.NewEncoder(w).Encode(allPeers) +} + +func sentinelPeers(node *node.ErigonNode) ([]*PeerResponse, error) { + if diag, ok := node.Backend().Sentinel().(diagnint.PeerStatisticsGetter); ok { + + statisticsArray := diag.GetPeersStatistics() + peers := make([]*PeerResponse, 0, len(statisticsArray)) + + for key, value := range statisticsArray { + peer := PeerResponse{ + ENR: "", //TODO: find a way how to get missing data + Enode: "", + ID: key, + Name: "", + Type: "Sentinel", + Caps: []string{}, + Network: PeerNetworkInfo{ + LocalAddress: "", + RemoteAddress: "", + Inbound: false, + Trusted: false, + Static: false, + BytesIn: value.BytesIn, + BytesOut: value.BytesOut, + CapBytesIn: value.CapBytesIn, + CapBytesOut: value.CapBytesOut, + TypeBytesIn: value.TypeBytesIn, + TypeBytesOut: value.TypeBytesOut, + }, + Protocols: nil, + } + + peers = append(peers, &peer) + } + + return peers, nil + } else { + return []*PeerResponse{}, nil + } +} + +func sentryPeers(node *node.ErigonNode) ([]*PeerResponse, error) { + + statisticsArray := node.Backend().DiagnosticsPeersData() + + peers := make([]*PeerResponse, 0, len(statisticsArray)) + + for key, value := range statisticsArray { + peer := PeerResponse{ + ENR: "", //TODO: find a way how to get missing data + Enode: "", + ID: key, + Name: "", + Type: "Sentry", + Caps: []string{}, + Network: PeerNetworkInfo{ + LocalAddress: "", + RemoteAddress: "", + Inbound: false, + Trusted: false, + Static: false, + BytesIn: value.BytesIn, + BytesOut: value.BytesOut, + CapBytesIn: value.CapBytesIn, + CapBytesOut: value.CapBytesOut, + TypeBytesIn: value.TypeBytesIn, + TypeBytesOut: value.TypeBytesOut, }, Protocols: nil, } @@ -54,5 +134,17 @@ func writePeers(w http.ResponseWriter, ctx *cli.Context, node *node.ErigonNode) peers = append(peers, &peer) } - json.NewEncoder(w).Encode(peers) + return filterPeersWithoutBytesIn(peers), nil +} + +func filterPeersWithoutBytesIn(peers []*PeerResponse) []*PeerResponse { + filteredPeers := make([]*PeerResponse, 0, len(peers)) + + for _, peer := range peers { + if peer.Network.BytesIn > 0 { + filteredPeers = append(filteredPeers, peer) + } + } + + return filteredPeers } diff --git a/docs/examples/single-process.md b/docs/examples/single-process.md index 6465128fba7..aaed061b0be 100644 --- a/docs/examples/single-process.md +++ b/docs/examples/single-process.md @@ -27,7 +27,7 @@ This runs Erigon with RPCDaemon, TxPool etc. all in one single process. This is ## Flags of Interest -- `--chain` dictactes the chain (goerli/mainnet etc.) - https://chainlist.org/ is a helpful resource +- `--chain` dictates the chain (goerli/mainnet etc.) - https://chainlist.org/ is a helpful resource - `--log.dir.path` dictates where logs will be output - useful for sending reports to the Erigon team when issues occur - `--http.api` defines the set of APIs which are enabled, the above example is a pretty comprehensive list - what these do is beyond the scope of this example - `--authrpc.port` is the port which the consensus layer (PoS) uses to talk to Erigon diff --git a/docs/programmers_guide/guide.md b/docs/programmers_guide/guide.md index 43ddef2e6b4..19606453f65 100644 --- a/docs/programmers_guide/guide.md +++ b/docs/programmers_guide/guide.md @@ -450,7 +450,7 @@ also pushes the hash of the byte code onto the hash stack. the node stack. `ACCOUNTLEAF` opcode is similar to `LEAF`. It consumes the next item from the key tape. The rest of the semantics -depends on the value of the `field-set`. Field set can be respresented by a bitmask. In that case, bit 0 would +depends on the value of the `field-set`. Field set can be represented by a bitmask. In that case, bit 0 would correspond to field 0, bit 1 (number 2) - to field 1, bit 2 (number 4) - to field 2. Currently, field 0 means account nonce, field 1 means account balance, field 2 means contract storage, field 3 means contract code. diff --git a/erigon-lib/.github/workflows/ci.yml b/erigon-lib/.github/workflows/ci.yml index b76ed8d3b03..79ddb716921 100644 --- a/erigon-lib/.github/workflows/ci.yml +++ b/erigon-lib/.github/workflows/ci.yml @@ -32,7 +32,7 @@ jobs: fetch-depth: 0 # fetch git tags for "git describe" - uses: actions/setup-go@v4 with: - go-version: '1.19' + go-version: '1.20' - name: Install deps if: matrix.os == 'ubuntu-20.04' diff --git a/erigon-lib/chain/chain_config.go b/erigon-lib/chain/chain_config.go index 2fccd28cf00..78d8da8e6cd 100644 --- a/erigon-lib/chain/chain_config.go +++ b/erigon-lib/chain/chain_config.go @@ -74,8 +74,8 @@ type Config struct { TargetBlobGasPerBlock *uint64 `json:"targetBlobGasPerBlock,omitempty"` BlobGasPriceUpdateFraction *uint64 `json:"blobGasPriceUpdateFraction,omitempty"` - Eip1559FeeCollector *common.Address `json:"eip1559FeeCollector,omitempty"` // (Optional) Address where burnt EIP-1559 fees go to - Eip1559FeeCollectorTransition *big.Int `json:"eip1559FeeCollectorTransition,omitempty"` // (Optional) Block from which burnt EIP-1559 fees go to the Eip1559FeeCollector + // (Optional) governance contract where EIP-1559 fees will be sent to that otherwise would be burnt since the London fork + BurntContract map[string]common.Address `json:"burntContract,omitempty"` // Various consensus engines Ethash *EthashConfig `json:"ethash,omitempty"` @@ -198,6 +198,17 @@ func (c *Config) IsShanghai(time uint64) bool { return isForked(c.ShanghaiTime, time) } +// IsAgra returns whether num is either equal to the Agra fork block or greater. +// The Agra hard fork is based on the Shanghai hard fork, but it doesn't include withdrawals. +// Also Agra is activated based on the block number rather than the timestamp. +// Refer to https://forum.polygon.technology/t/pip-28-agra-hardfork +func (c *Config) IsAgra(num uint64) bool { + if c == nil || c.Bor == nil { + return false + } + return isForked(c.Bor.AgraBlock, num) +} + // IsCancun returns whether time is either equal to the Cancun fork time or greater. func (c *Config) IsCancun(time uint64) bool { return isForked(c.CancunTime, time) @@ -208,8 +219,12 @@ func (c *Config) IsPrague(time uint64) bool { return isForked(c.PragueTime, time) } -func (c *Config) IsEip1559FeeCollector(num uint64) bool { - return c.Eip1559FeeCollector != nil && isForked(c.Eip1559FeeCollectorTransition, num) +func (c *Config) GetBurntContract(num uint64) *common.Address { + if len(c.BurntContract) == 0 { + return nil + } + addr := borKeyValueConfigHelper(c.BurntContract, num) + return &addr } func (c *Config) GetMinBlobGasPrice() uint64 { @@ -449,10 +464,10 @@ type BorConfig struct { OverrideStateSyncRecords map[string]int `json:"overrideStateSyncRecords"` // override state records count BlockAlloc map[string]interface{} `json:"blockAlloc"` - JaipurBlock *big.Int `json:"jaipurBlock"` // Jaipur switch block (nil = no fork, 0 = already on jaipur) - DelhiBlock *big.Int `json:"delhiBlock"` // Delhi switch block (nil = no fork, 0 = already on delhi) - IndoreBlock *big.Int `json:"indoreBlock"` // Indore switch block (nil = no fork, 0 = already on indore) - + JaipurBlock *big.Int `json:"jaipurBlock"` // Jaipur switch block (nil = no fork, 0 = already on jaipur) + DelhiBlock *big.Int `json:"delhiBlock"` // Delhi switch block (nil = no fork, 0 = already on delhi) + IndoreBlock *big.Int `json:"indoreBlock"` // Indore switch block (nil = no fork, 0 = already on indore) + AgraBlock *big.Int `json:"agraBlock"` // Agra switch block (nil = no fork, 0 = already in agra) StateSyncConfirmationDelay map[string]uint64 `json:"stateSyncConfirmationDelay"` // StateSync Confirmation Delay, in seconds, to calculate `to` sprints sprints @@ -527,11 +542,11 @@ func (c *BorConfig) CalculateSprintCount(from, to uint64) int { } func (c *BorConfig) CalculateBackupMultiplier(number uint64) uint64 { - return c.calcConfig(c.BackupMultiplier, number) + return borKeyValueConfigHelper(c.BackupMultiplier, number) } func (c *BorConfig) CalculatePeriod(number uint64) uint64 { - return c.calcConfig(c.Period, number) + return borKeyValueConfigHelper(c.Period, number) } func (c *BorConfig) IsJaipur(number uint64) bool { @@ -550,40 +565,25 @@ func (c *BorConfig) CalculateStateSyncDelay(number uint64) uint64 { return borKeyValueConfigHelper(c.StateSyncConfirmationDelay, number) } -func (c *BorConfig) calcConfig(field map[string]uint64, number uint64) uint64 { - keys := sortMapKeys(field) - for i := 0; i < len(keys)-1; i++ { - valUint, _ := strconv.ParseUint(keys[i], 10, 64) - valUintNext, _ := strconv.ParseUint(keys[i+1], 10, 64) - if number > valUint && number < valUintNext { - return field[keys[i]] +func borKeyValueConfigHelper[T uint64 | common.Address](field map[string]T, number uint64) T { + fieldUint := make(map[uint64]T) + for k, v := range field { + keyUint, err := strconv.ParseUint(k, 10, 64) + if err != nil { + panic(err) } + fieldUint[keyUint] = v } - return field[keys[len(keys)-1]] -} -func borKeyValueConfigHelper(field map[string]uint64, number uint64) uint64 { - keys := sortMapKeys(field) - for i := 0; i < len(keys)-1; i++ { - valUint, _ := strconv.ParseUint(keys[i], 10, 64) - valUintNext, _ := strconv.ParseUint(keys[i+1], 10, 64) + keys := common.SortedKeys(fieldUint) - if number >= valUint && number < valUintNext { - return field[keys[i]] + for i := 0; i < len(keys)-1; i++ { + if number >= keys[i] && number < keys[i+1] { + return fieldUint[keys[i]] } } - return field[keys[len(keys)-1]] -} - -func sortMapKeys(m map[string]uint64) []string { - keys := make([]string, 0, len(m)) - for k := range m { - keys = append(keys, k) - } - sort.Strings(keys) - - return keys + return fieldUint[keys[len(keys)-1]] } type sprint struct { @@ -629,7 +629,7 @@ type Rules struct { IsHomestead, IsTangerineWhistle, IsSpuriousDragon bool IsByzantium, IsConstantinople, IsPetersburg, IsIstanbul bool IsBerlin, IsLondon, IsShanghai, IsCancun, IsPrague bool - IsEip1559FeeCollector, IsAura bool + IsAura bool } // Rules ensures c's ChainID is not nil and returns a new Rules instance @@ -640,21 +640,20 @@ func (c *Config) Rules(num uint64, time uint64) *Rules { } return &Rules{ - ChainID: new(big.Int).Set(chainID), - IsHomestead: c.IsHomestead(num), - IsTangerineWhistle: c.IsTangerineWhistle(num), - IsSpuriousDragon: c.IsSpuriousDragon(num), - IsByzantium: c.IsByzantium(num), - IsConstantinople: c.IsConstantinople(num), - IsPetersburg: c.IsPetersburg(num), - IsIstanbul: c.IsIstanbul(num), - IsBerlin: c.IsBerlin(num), - IsLondon: c.IsLondon(num), - IsShanghai: c.IsShanghai(time), - IsCancun: c.IsCancun(time), - IsPrague: c.IsPrague(time), - IsEip1559FeeCollector: c.IsEip1559FeeCollector(num), - IsAura: c.Aura != nil, + ChainID: new(big.Int).Set(chainID), + IsHomestead: c.IsHomestead(num), + IsTangerineWhistle: c.IsTangerineWhistle(num), + IsSpuriousDragon: c.IsSpuriousDragon(num), + IsByzantium: c.IsByzantium(num), + IsConstantinople: c.IsConstantinople(num), + IsPetersburg: c.IsPetersburg(num), + IsIstanbul: c.IsIstanbul(num), + IsBerlin: c.IsBerlin(num), + IsLondon: c.IsLondon(num), + IsShanghai: c.IsShanghai(time) || c.IsAgra(num), + IsCancun: c.IsCancun(time), + IsPrague: c.IsPrague(time), + IsAura: c.Aura != nil, } } diff --git a/erigon-lib/chain/chain_config_test.go b/erigon-lib/chain/chain_config_test.go new file mode 100644 index 00000000000..990202dd1c7 --- /dev/null +++ b/erigon-lib/chain/chain_config_test.go @@ -0,0 +1,68 @@ +/* + Copyright 2023 The Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package chain + +import ( + "testing" + + "github.com/stretchr/testify/assert" + + "github.com/ledgerwatch/erigon-lib/common" +) + +func TestBorKeyValueConfigHelper(t *testing.T) { + backupMultiplier := map[string]uint64{ + "0": 2, + "25275000": 5, + "29638656": 2, + } + assert.Equal(t, borKeyValueConfigHelper(backupMultiplier, 0), uint64(2)) + assert.Equal(t, borKeyValueConfigHelper(backupMultiplier, 1), uint64(2)) + assert.Equal(t, borKeyValueConfigHelper(backupMultiplier, 25275000-1), uint64(2)) + assert.Equal(t, borKeyValueConfigHelper(backupMultiplier, 25275000), uint64(5)) + assert.Equal(t, borKeyValueConfigHelper(backupMultiplier, 25275000+1), uint64(5)) + assert.Equal(t, borKeyValueConfigHelper(backupMultiplier, 29638656-1), uint64(5)) + assert.Equal(t, borKeyValueConfigHelper(backupMultiplier, 29638656), uint64(2)) + assert.Equal(t, borKeyValueConfigHelper(backupMultiplier, 29638656+1), uint64(2)) + + config := map[string]uint64{ + "0": 1, + "90000000": 2, + "100000000": 3, + } + assert.Equal(t, borKeyValueConfigHelper(config, 0), uint64(1)) + assert.Equal(t, borKeyValueConfigHelper(config, 1), uint64(1)) + assert.Equal(t, borKeyValueConfigHelper(config, 90000000-1), uint64(1)) + assert.Equal(t, borKeyValueConfigHelper(config, 90000000), uint64(2)) + assert.Equal(t, borKeyValueConfigHelper(config, 90000000+1), uint64(2)) + assert.Equal(t, borKeyValueConfigHelper(config, 100000000-1), uint64(2)) + assert.Equal(t, borKeyValueConfigHelper(config, 100000000), uint64(3)) + assert.Equal(t, borKeyValueConfigHelper(config, 100000000+1), uint64(3)) + + address1 := common.HexToAddress("0x70bcA57F4579f58670aB2d18Ef16e02C17553C38") + address2 := common.HexToAddress("0x617b94CCCC2511808A3C9478ebb96f455CF167aA") + + burntContract := map[string]common.Address{ + "22640000": address1, + "41874000": address2, + } + assert.Equal(t, borKeyValueConfigHelper(burntContract, 22640000), address1) + assert.Equal(t, borKeyValueConfigHelper(burntContract, 22640000+1), address1) + assert.Equal(t, borKeyValueConfigHelper(burntContract, 41874000-1), address1) + assert.Equal(t, borKeyValueConfigHelper(burntContract, 41874000), address2) + assert.Equal(t, borKeyValueConfigHelper(burntContract, 41874000+1), address2) +} diff --git a/params/networkname/network_name.go b/erigon-lib/chain/networkname/network_name.go similarity index 100% rename from params/networkname/network_name.go rename to erigon-lib/chain/networkname/network_name.go diff --git a/turbo/snapshotsync/snapcfg/util.go b/erigon-lib/chain/snapcfg/util.go similarity index 80% rename from turbo/snapshotsync/snapcfg/util.go rename to erigon-lib/chain/snapcfg/util.go index 3ae9044cb96..548c9b94a87 100644 --- a/turbo/snapshotsync/snapcfg/util.go +++ b/erigon-lib/chain/snapcfg/util.go @@ -6,8 +6,9 @@ import ( "strconv" "strings" + "github.com/ledgerwatch/erigon-lib/chain/networkname" snapshothashes "github.com/ledgerwatch/erigon-snapshot" - "github.com/ledgerwatch/erigon/params/networkname" + "github.com/ledgerwatch/erigon-snapshot/webseed" "github.com/pelletier/go-toml/v2" "golang.org/x/exp/slices" ) @@ -71,9 +72,6 @@ func maxBlockNum(preverified Preverified) uint64 { } onlyName := fileName[:len(fileName)-len(ext)] parts := strings.Split(onlyName, "-") - if parts[0] != "v1" { - panic("not implemented") - } if parts[3] != "headers" { continue } @@ -134,3 +132,25 @@ func KnownCfg(networkName string, whiteList, whiteListHistory []string) *Cfg { return newCfg(result) } + +var KnownWebseeds = map[string][]string{ + networkname.MainnetChainName: webseedsParse(webseed.Mainnet), + networkname.SepoliaChainName: webseedsParse(webseed.Sepolia), + networkname.GoerliChainName: webseedsParse(webseed.Goerli), + networkname.MumbaiChainName: webseedsParse(webseed.Mumbai), + networkname.BorMainnetChainName: webseedsParse(webseed.BorMainnet), + networkname.GnosisChainName: webseedsParse(webseed.Gnosis), + networkname.ChiadoChainName: webseedsParse(webseed.Chiado), +} + +func webseedsParse(in []byte) (res []string) { + a := map[string]string{} + if err := toml.Unmarshal(in, &a); err != nil { + panic(err) + } + for _, l := range a { + res = append(res, l) + } + slices.Sort(res) + return res +} diff --git a/erigon-lib/common/copybytes.go b/erigon-lib/common/copybytes.go new file mode 100644 index 00000000000..02457e0a954 --- /dev/null +++ b/erigon-lib/common/copybytes.go @@ -0,0 +1,12 @@ +package common + +// CopyBytes returns an exact copy of the provided bytes. +func CopyBytes(b []byte) (copiedBytes []byte) { + if b == nil { + return nil + } + copiedBytes = make([]byte, len(b)) + copy(copiedBytes, b) + + return +} diff --git a/common/eth2shuffle/shuffle.go b/erigon-lib/common/eth2shuffle/shuffle.go similarity index 100% rename from common/eth2shuffle/shuffle.go rename to erigon-lib/common/eth2shuffle/shuffle.go diff --git a/common/eth2shuffle/shuffle_bench_test.go b/erigon-lib/common/eth2shuffle/shuffle_bench_test.go similarity index 97% rename from common/eth2shuffle/shuffle_bench_test.go rename to erigon-lib/common/eth2shuffle/shuffle_bench_test.go index a44ef6e428b..45fe2027642 100644 --- a/common/eth2shuffle/shuffle_bench_test.go +++ b/erigon-lib/common/eth2shuffle/shuffle_bench_test.go @@ -4,7 +4,7 @@ import ( "fmt" "testing" - "github.com/ledgerwatch/erigon/common/eth2shuffle" + "github.com/ledgerwatch/erigon-lib/common/eth2shuffle" ) func BenchmarkPermuteIndex(b *testing.B) { diff --git a/common/eth2shuffle/shuffle_test.go b/erigon-lib/common/eth2shuffle/shuffle_test.go similarity index 98% rename from common/eth2shuffle/shuffle_test.go rename to erigon-lib/common/eth2shuffle/shuffle_test.go index b19c45305bb..1f5cfda530c 100644 --- a/common/eth2shuffle/shuffle_test.go +++ b/erigon-lib/common/eth2shuffle/shuffle_test.go @@ -10,7 +10,7 @@ import ( "strings" "testing" - "github.com/ledgerwatch/erigon/common/eth2shuffle" + "github.com/ledgerwatch/erigon-lib/common/eth2shuffle" "github.com/stretchr/testify/assert" ) diff --git a/common/eth2shuffle/spec/tests.csv b/erigon-lib/common/eth2shuffle/spec/tests.csv similarity index 100% rename from common/eth2shuffle/spec/tests.csv rename to erigon-lib/common/eth2shuffle/spec/tests.csv diff --git a/common/hasher.go b/erigon-lib/common/hasher.go similarity index 81% rename from common/hasher.go rename to erigon-lib/common/hasher.go index e92367f9bd0..f9b25295035 100644 --- a/common/hasher.go +++ b/erigon-lib/common/hasher.go @@ -4,7 +4,6 @@ import ( "hash" "sync" - libcommon "github.com/ledgerwatch/erigon-lib/common" "golang.org/x/crypto/sha3" ) @@ -33,19 +32,19 @@ func NewHasher() *Hasher { } func ReturnHasherToPool(h *Hasher) { hashersPool.Put(h) } -func HashData(data []byte) (libcommon.Hash, error) { +func HashData(data []byte) (Hash, error) { h := NewHasher() defer ReturnHasherToPool(h) _, err := h.Sha.Write(data) if err != nil { - return libcommon.Hash{}, err + return Hash{}, err } - var buf libcommon.Hash + var buf Hash _, err = h.Sha.Read(buf[:]) if err != nil { - return libcommon.Hash{}, err + return Hash{}, err } return buf, nil } diff --git a/erigon-lib/common/hextobytes.go b/erigon-lib/common/hextobytes.go new file mode 100644 index 00000000000..79473730a1e --- /dev/null +++ b/erigon-lib/common/hextobytes.go @@ -0,0 +1,9 @@ +package common + +import "encoding/hex" + +// Hex2Bytes returns the bytes represented by the hexadecimal string str. +func Hex2Bytes(str string) []byte { + h, _ := hex.DecodeString(str) + return h +} diff --git a/common/hexutil/hexutil.go b/erigon-lib/common/hexutil/hexutil.go similarity index 75% rename from common/hexutil/hexutil.go rename to erigon-lib/common/hexutil/hexutil.go index 3df5272075c..3efc5d4c1a5 100644 --- a/common/hexutil/hexutil.go +++ b/erigon-lib/common/hexutil/hexutil.go @@ -1,33 +1,3 @@ -// Copyright 2016 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -/* -Package hexutil implements hex encoding with 0x prefix. -This encoding is used by the Ethereum RPC API to transport binary data in JSON payloads. - -# Encoding Rules - -All hex data must have prefix "0x". - -For byte slices, the hex data must be of even length. An empty byte slice -encodes as "0x". - -Integers are encoded using the least amount of digits (no leading zero digits). Their -encoding may be of uneven length. The number zero encodes as "0x0". -*/ package hexutil import ( @@ -39,7 +9,7 @@ import ( const uintBits = 32 << (uint64(^uint(0)) >> 63) -// Errors +// These errors are from go-ethereum in order to keep compatibility with geth error codes. var ( ErrEmptyString = &decError{"empty hex string"} ErrSyntax = &decError{"invalid hex string"} @@ -66,9 +36,9 @@ func Decode(input string) ([]byte, error) { } b, err := hex.DecodeString(input[2:]) if err != nil { - err = mapError(err) + return nil, mapError(err) } - return b, err + return b, nil } // MustDecode decodes a hex string with 0x prefix. It panics for invalid input. @@ -88,19 +58,9 @@ func DecodeUint64(input string) (uint64, error) { } dec, err := strconv.ParseUint(raw, 16, 64) if err != nil { - err = mapError(err) + return 0, mapError(err) } - return dec, err -} - -// MustDecodeUint64 decodes a hex string with 0x prefix as a quantity. -// It panics for invalid input. -func MustDecodeUint64(input string) uint64 { - dec, err := DecodeUint64(input) - if err != nil { - panic(err) - } - return dec + return dec, nil } // EncodeUint64 encodes i as a hex string with 0x prefix. @@ -213,6 +173,8 @@ func decodeNibble(in byte) uint64 { } } +// ignore these errors to keep compatiblity with go ethereum +// nolint:errorlint func mapError(err error) error { if err, ok := err.(*strconv.NumError); ok { switch err.Err { @@ -232,7 +194,6 @@ func mapError(err error) error { } // CompressNibbles - supports only even number of nibbles -// This method supports only arrays of even nibbles // // HI_NIBBLE(b) = (b >> 4) & 0x0F // LO_NIBBLE(b) = b & 0x0F diff --git a/common/hexutil/hexutil_test.go b/erigon-lib/common/hexutil/hexutil_test.go similarity index 56% rename from common/hexutil/hexutil_test.go rename to erigon-lib/common/hexutil/hexutil_test.go index 17ebd6bb769..4c9f508ad5e 100644 --- a/common/hexutil/hexutil_test.go +++ b/erigon-lib/common/hexutil/hexutil_test.go @@ -1,23 +1,8 @@ -// Copyright 2016 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - package hexutil import ( - "bytes" + "fmt" + "github.com/stretchr/testify/require" "math/big" "testing" ) @@ -40,14 +25,13 @@ var ( {[]byte{0}, "0x00"}, {[]byte{0, 0, 1, 2}, "0x00000102"}, } - encodeBigTests = []marshalTest{ - {referenceBig("0"), "0x0"}, - {referenceBig("1"), "0x1"}, - {referenceBig("ff"), "0xff"}, - {referenceBig("112233445566778899aabbccddeeff"), "0x112233445566778899aabbccddeeff"}, - {referenceBig("80a7f2c1bcc396c00"), "0x80a7f2c1bcc396c00"}, - {referenceBig("-80a7f2c1bcc396c00"), "-0x80a7f2c1bcc396c00"}, + {bigFromString("0"), "0x0"}, + {bigFromString("1"), "0x1"}, + {bigFromString("ff"), "0xff"}, + {bigFromString("112233445566778899aabbccddeeff"), "0x112233445566778899aabbccddeeff"}, + {bigFromString("80a7f2c1bcc396c00"), "0x80a7f2c1bcc396c00"}, + {bigFromString("-80a7f2c1bcc396c00"), "-0x80a7f2c1bcc396c00"}, } encodeUint64Tests = []marshalTest{ @@ -105,15 +89,15 @@ var ( {input: `0xfffffffff`, want: big.NewInt(0xfffffffff)}, { input: `0x112233445566778899aabbccddeeff`, - want: referenceBig("112233445566778899aabbccddeeff"), + want: bigFromString("112233445566778899aabbccddeeff"), }, { input: `0xffffffffffffffffffffffffffffffffffff`, - want: referenceBig("ffffffffffffffffffffffffffffffffffff"), + want: bigFromString("ffffffffffffffffffffffffffffffffffff"), }, { input: `0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`, - want: referenceBig("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"), + want: bigFromString("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"), }, } @@ -137,58 +121,55 @@ var ( ) func TestDecode(t *testing.T) { - for _, test := range decodeBytesTests { - dec, err := Decode(test.input) - if !checkError(t, test.input, err, test.wantErr) { - continue - } - if !bytes.Equal(test.want.([]byte), dec) { - t.Errorf("input %s: value mismatch: got %x, want %x", test.input, dec, test.want) - continue - } + for idx, test := range decodeBytesTests { + t.Run(fmt.Sprintf("%d", idx), func(t *testing.T) { + dec, err := Decode(test.input) + checkError(t, test.input, err, test.wantErr) + if test.want != nil { + require.EqualValues(t, test.want, dec) + } + }) } } func TestEncodeBig(t *testing.T) { - for _, test := range encodeBigTests { - enc := EncodeBig(test.input.(*big.Int)) - if enc != test.want { - t.Errorf("input %x: wrong encoding %s", test.input, enc) - } + for idx, test := range encodeBigTests { + t.Run(fmt.Sprintf("%d", idx), func(t *testing.T) { + enc := EncodeBig(test.input.(*big.Int)) + require.EqualValues(t, test.want, enc) + }) } } func TestDecodeBig(t *testing.T) { - for _, test := range decodeBigTests { - dec, err := DecodeBig(test.input) - if !checkError(t, test.input, err, test.wantErr) { - continue - } - if dec.Cmp(test.want.(*big.Int)) != 0 { - t.Errorf("input %s: value mismatch: got %x, want %x", test.input, dec, test.want) - continue - } + for idx, test := range decodeBigTests { + t.Run(fmt.Sprintf("%d", idx), func(t *testing.T) { + dec, err := DecodeBig(test.input) + checkError(t, test.input, err, test.wantErr) + if test.want != nil { + require.EqualValues(t, test.want.(*big.Int).String(), dec.String()) + } + }) } } func TestEncodeUint64(t *testing.T) { - for _, test := range encodeUint64Tests { - enc := EncodeUint64(test.input.(uint64)) - if enc != test.want { - t.Errorf("input %x: wrong encoding %s", test.input, enc) - } + for idx, test := range encodeUint64Tests { + t.Run(fmt.Sprintf("%d", idx), func(t *testing.T) { + enc := EncodeUint64(test.input.(uint64)) + require.EqualValues(t, test.want, enc) + }) } } func TestDecodeUint64(t *testing.T) { - for _, test := range decodeUint64Tests { - dec, err := DecodeUint64(test.input) - if !checkError(t, test.input, err, test.wantErr) { - continue - } - if dec != test.want.(uint64) { - t.Errorf("input %s: value mismatch: got %x, want %x", test.input, dec, test.want) - continue - } + for idx, test := range decodeUint64Tests { + t.Run(fmt.Sprintf("%d", idx), func(t *testing.T) { + dec, err := DecodeUint64(test.input) + checkError(t, test.input, err, test.wantErr) + if test.want != nil { + require.EqualValues(t, test.want, dec) + } + }) } } diff --git a/common/hexutil/json.go b/erigon-lib/common/hexutil/json.go similarity index 97% rename from common/hexutil/json.go rename to erigon-lib/common/hexutil/json.go index 7b7fbcab947..ab9f820a58b 100644 --- a/common/hexutil/json.go +++ b/erigon-lib/common/hexutil/json.go @@ -19,6 +19,7 @@ package hexutil import ( "encoding/hex" "encoding/json" + "errors" "fmt" "math/big" "reflect" @@ -191,7 +192,7 @@ func (b *Uint) UnmarshalJSON(input []byte) error { func (b *Uint) UnmarshalText(input []byte) error { var u64 Uint64 err := u64.UnmarshalText(input) - if u64 > Uint64(^uint(0)) || err == ErrUint64Range { + if u64 > Uint64(^uint(0)) || errors.Is(err, ErrUint64Range) { return ErrUintRange } else if err != nil { return err @@ -246,6 +247,8 @@ func checkNumberText(input []byte) (raw []byte, err error) { } func wrapTypeError(err error, typ reflect.Type) error { + // keeping compatiblity with go ethereum tests + // nolint:errorlint if _, ok := err.(*decError); ok { return &json.UnmarshalTypeError{Value: err.Error(), Type: typ} } diff --git a/common/hexutil/json_test.go b/erigon-lib/common/hexutil/json_test.go similarity index 52% rename from common/hexutil/json_test.go rename to erigon-lib/common/hexutil/json_test.go index 21f4a35ce58..42c6fc172e2 100644 --- a/common/hexutil/json_test.go +++ b/erigon-lib/common/hexutil/json_test.go @@ -1,46 +1,29 @@ -// Copyright 2016 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - package hexutil import ( - "bytes" "encoding/json" "errors" + "fmt" "math/big" "testing" + + "github.com/stretchr/testify/require" ) -func checkError(t *testing.T, input string, got, want error) bool { - if got == nil { - if want != nil { - t.Errorf("input %s: got no error, want %q", input, want) - return false - } - return true - } +func checkError(t *testing.T, input string, got, want error) { + t.Helper() if want == nil { - t.Errorf("input %s: unexpected error %q", input, got) - } else if got.Error() != want.Error() { - t.Errorf("input %s: got error %q, want %q", input, got, want) + require.NoErrorf(t, got, "input %s", input) + return + } + if got == nil { + require.NoError(t, want, "input %s", input) + return } - return false + require.EqualValues(t, want.Error(), got.Error(), "input %s", input) } -func referenceBig(s string) *big.Int { +func bigFromString(s string) *big.Int { b, ok := new(big.Int).SetString(s, 16) if !ok { panic("invalid") @@ -64,7 +47,6 @@ var unmarshalBigTests = []unmarshalTest{ input: `"0x10000000000000000000000000000000000000000000000000000000000000000"`, wantErr: wrapTypeError(ErrBig256Range, bigT), }, - // valid encoding {input: `""`, want: big.NewInt(0)}, {input: `"0x0"`, want: big.NewInt(0)}, @@ -76,29 +58,28 @@ var unmarshalBigTests = []unmarshalTest{ {input: `"0xfffffffff"`, want: big.NewInt(0xfffffffff)}, { input: `"0x112233445566778899aabbccddeeff"`, - want: referenceBig("112233445566778899aabbccddeeff"), + want: bigFromString("112233445566778899aabbccddeeff"), }, { input: `"0xffffffffffffffffffffffffffffffffffff"`, - want: referenceBig("ffffffffffffffffffffffffffffffffffff"), + want: bigFromString("ffffffffffffffffffffffffffffffffffff"), }, { input: `"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"`, - want: referenceBig("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"), + want: bigFromString("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"), }, } func TestUnmarshalBig(t *testing.T) { - for _, test := range unmarshalBigTests { - var v Big - err := json.Unmarshal([]byte(test.input), &v) - if !checkError(t, test.input, err, test.wantErr) { - continue - } - if test.want != nil && test.want.(*big.Int).Cmp((*big.Int)(&v)) != 0 { - t.Errorf("input %s: value mismatch: got %x, want %x", test.input, (*big.Int)(&v), test.want) - continue - } + for idx, test := range unmarshalBigTests { + t.Run(fmt.Sprintf("%d", idx), func(t *testing.T) { + var v Big + err := json.Unmarshal([]byte(test.input), &v) + checkError(t, test.input, err, test.wantErr) + if test.want != nil { + require.EqualValues(t, test.want.(*big.Int).Bytes(), v.ToInt().Bytes()) + } + }) } } @@ -113,21 +94,15 @@ func BenchmarkUnmarshalBig(b *testing.B) { } func TestMarshalBig(t *testing.T) { - for _, test := range encodeBigTests { - in := test.input.(*big.Int) - out, err := json.Marshal((*Big)(in)) - if err != nil { - t.Errorf("%d: %v", in, err) - continue - } - if want := `"` + test.want + `"`; string(out) != want { - t.Errorf("%d: MarshalJSON output mismatch: got %q, want %q", in, out, want) - continue - } - if out := (*Big)(in).String(); out != test.want { - t.Errorf("%x: String mismatch: got %q, want %q", in, out, test.want) - continue - } + for idx, test := range encodeBigTests { + t.Run(fmt.Sprintf("%d", idx), func(t *testing.T) { + in := test.input.(*big.Int) + out, err := json.Marshal((*Big)(in)) + require.NoError(t, err) + want := `"` + test.want + `"` + require.EqualValues(t, want, string(out)) + require.EqualValues(t, test.want, (*Big)(in).String()) + }) } } @@ -155,16 +130,15 @@ var unmarshalUint64Tests = []unmarshalTest{ } func TestUnmarshalUint64(t *testing.T) { - for _, test := range unmarshalUint64Tests { - var v Uint64 - err := json.Unmarshal([]byte(test.input), &v) - if !checkError(t, test.input, err, test.wantErr) { - continue - } - if uint64(v) != test.want.(uint64) { - t.Errorf("input %s: value mismatch: got %d, want %d", test.input, v, test.want) - continue - } + for idx, test := range unmarshalUint64Tests { + t.Run(fmt.Sprintf("%d", idx), func(t *testing.T) { + var v Uint64 + err := json.Unmarshal([]byte(test.input), &v) + checkError(t, test.input, err, test.wantErr) + if test.want != nil { + require.EqualValues(t, test.want, v) + } + }) } } @@ -172,51 +146,37 @@ func BenchmarkUnmarshalUint64(b *testing.B) { input := []byte(`"0x123456789abcdf"`) for i := 0; i < b.N; i++ { var v Uint64 - v.UnmarshalJSON(input) + _ = v.UnmarshalJSON(input) } } func TestMarshalUint64(t *testing.T) { - for _, test := range encodeUint64Tests { - in := test.input.(uint64) - out, err := json.Marshal(Uint64(in)) - if err != nil { - t.Errorf("%d: %v", in, err) - continue - } - if want := `"` + test.want + `"`; string(out) != want { - t.Errorf("%d: MarshalJSON output mismatch: got %q, want %q", in, out, want) - continue - } - if out := (Uint64)(in).String(); out != test.want { - t.Errorf("%x: String mismatch: got %q, want %q", in, out, test.want) - continue - } + for idx, test := range encodeUint64Tests { + t.Run(fmt.Sprintf("%d", idx), func(t *testing.T) { + in := test.input.(uint64) + out, err := json.Marshal(Uint64(in)) + require.NoError(t, err) + want := `"` + test.want + `"` + require.EqualValues(t, want, string(out)) + require.EqualValues(t, test.want, (Uint64)(in).String()) + }) } } func TestMarshalUint(t *testing.T) { - for _, test := range encodeUintTests { - in := test.input.(uint) - out, err := json.Marshal(Uint(in)) - if err != nil { - t.Errorf("%d: %v", in, err) - continue - } - if want := `"` + test.want + `"`; string(out) != want { - t.Errorf("%d: MarshalJSON output mismatch: got %q, want %q", in, out, want) - continue - } - if out := (Uint)(in).String(); out != test.want { - t.Errorf("%x: String mismatch: got %q, want %q", in, out, test.want) - continue - } + for idx, test := range encodeUintTests { + t.Run(fmt.Sprintf("%d", idx), func(t *testing.T) { + in := test.input.(uint) + out, err := json.Marshal(Uint(in)) + require.NoError(t, err) + want := `"` + test.want + `"` + require.EqualValues(t, want, string(out)) + require.EqualValues(t, test.want, (Uint)(in).String()) + }) } } var ( - // These are variables (not constants) to avoid constant overflow - // checks in the compiler on 32bit platforms. maxUint33bits = uint64(^uint32(0)) + 1 maxUint64bits = ^uint64(0) ) @@ -247,20 +207,20 @@ var unmarshalUintTests = []unmarshalTest{ } func TestUnmarshalUint(t *testing.T) { - for _, test := range unmarshalUintTests { - var v Uint - err := json.Unmarshal([]byte(test.input), &v) - if uintBits == 32 && test.wantErr32bit != nil { - checkError(t, test.input, err, test.wantErr32bit) - continue - } - if !checkError(t, test.input, err, test.wantErr) { - continue - } - if uint(v) != test.want.(uint) { - t.Errorf("input %s: value mismatch: got %d, want %d", test.input, v, test.want) - continue - } + for idx, test := range unmarshalUintTests { + t.Run(fmt.Sprintf("%d", idx), func(t *testing.T) { + var v Uint + err := json.Unmarshal([]byte(test.input), &v) + if uintBits == 32 && test.wantErr32bit != nil { + checkError(t, test.input, err, test.wantErr32bit) + return + } + checkError(t, test.input, err, test.wantErr) + if test.want != nil { + require.EqualValues(t, test.want, v) + } + + }) } } @@ -282,19 +242,14 @@ func TestUnmarshalFixedUnprefixedText(t *testing.T) { {input: "0x44444444", want: []byte{0x44, 0x44, 0x44, 0x44}}, } - for _, test := range tests { - out := make([]byte, 4) - err := UnmarshalFixedUnprefixedText("x", []byte(test.input), out) - switch { - case err == nil && test.wantErr != nil: - t.Errorf("%q: got no error, expected %q", test.input, test.wantErr) - case err != nil && test.wantErr == nil: - t.Errorf("%q: unexpected error %q", test.input, err) - case err != nil && err.Error() != test.wantErr.Error(): - t.Errorf("%q: error mismatch: got %q, want %q", test.input, err, test.wantErr) - } - if test.want != nil && !bytes.Equal(out, test.want) { - t.Errorf("%q: output mismatch: got %x, want %x", test.input, out, test.want) - } + for idx, test := range tests { + t.Run(fmt.Sprintf("%d", idx), func(t *testing.T) { + out := make([]byte, 4) + err := UnmarshalFixedUnprefixedText("x", []byte(test.input), out) + checkError(t, test.input, err, test.wantErr) + if test.want != nil { + require.EqualValues(t, out, test.want) + } + }) } } diff --git a/erigon-lib/common/ring/ring.go b/erigon-lib/common/ring/ring.go new file mode 100644 index 00000000000..7b15887be1e --- /dev/null +++ b/erigon-lib/common/ring/ring.go @@ -0,0 +1,156 @@ +package ring + +type Buffer[T any] struct { + buf []T + // real head is head-1, like this so nil ring is valid + head int + tail int + length int +} + +func MakeBuffer[T any](length, capacity int) Buffer[T] { + if length > capacity { + panic("length must be less than capacity") + } + return Buffer[T]{ + buf: make([]T, capacity), + tail: length, + length: length, + } +} + +func NewBuffer[T any](length, capacity int) *Buffer[T] { + r := MakeBuffer[T](length, capacity) + return &r +} + +func (r *Buffer[T]) grow() { + size := len(r.buf) * 2 + if size == 0 { + size = 2 + } + + buf := make([]T, size) + copy(buf, r.buf[r.head:]) + copy(buf[len(r.buf[r.head:]):], r.buf[:r.head]) + r.head = 0 + r.tail = r.length + r.buf = buf +} + +func (r *Buffer[T]) incHead() { + // resize + if r.length == 0 { + panic("smashing detected") + } + r.length-- + + r.head++ + if r.head == len(r.buf) { + r.head = 0 + } +} + +func (r *Buffer[T]) decHead() { + // resize + if r.length == len(r.buf) { + r.grow() + } + r.length++ + + r.head-- + if r.head == -1 { + r.head = len(r.buf) - 1 + } +} + +func (r *Buffer[T]) incTail() { + // resize + if r.length == len(r.buf) { + r.grow() + } + r.length++ + + r.tail++ + if r.tail == len(r.buf) { + r.tail = 0 + } +} + +func (r *Buffer[T]) decTail() { + // resize + if r.length == 0 { + panic("smashing detected") + } + r.length-- + + r.tail-- + if r.tail == -1 { + r.tail = len(r.buf) - 1 + } +} + +func (r *Buffer[T]) tailSub1() int { + tail := r.tail - 1 + if tail == -1 { + tail = len(r.buf) - 1 + } + return tail +} + +func (r *Buffer[T]) PopFront() (T, bool) { + if r.length == 0 { + return *new(T), false + } + + front := r.buf[r.head] + r.buf[r.head] = *new(T) + r.incHead() + return front, true +} + +func (r *Buffer[T]) PopBack() (T, bool) { + if r.length == 0 { + return *new(T), false + } + + r.decTail() + back := r.buf[r.tail] + r.buf[r.tail] = *new(T) + return back, true +} + +func (r *Buffer[T]) Clear() { + r.head = 0 + r.tail = 0 + r.length = 0 +} + +func (r *Buffer[T]) PushFront(value T) { + r.decHead() + r.buf[r.head] = value +} + +func (r *Buffer[T]) PushBack(value T) { + r.incTail() + r.buf[r.tailSub1()] = value +} + +func (r *Buffer[T]) Length() int { + return r.length +} + +func (r *Buffer[T]) Capacity() int { + return len(r.buf) +} + +func (r *Buffer[T]) Get(n int) T { + if n >= r.length { + panic("index out of range") + } + ptr := r.head + n + if ptr >= len(r.buf) { + ptr -= len(r.buf) + } + return r.buf[ptr] +} diff --git a/erigon-lib/common/sorted.go b/erigon-lib/common/sorted.go new file mode 100644 index 00000000000..2c077fffaeb --- /dev/null +++ b/erigon-lib/common/sorted.go @@ -0,0 +1,43 @@ +/* + Copyright 2022 The Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package common + +import ( + "golang.org/x/exp/constraints" + "golang.org/x/exp/slices" +) + +func SortedKeys[K constraints.Ordered, V any](m map[K]V) []K { + keys := make([]K, len(m)) + i := 0 + for k := range m { + keys[i] = k + i++ + } + slices.Sort(keys) + return keys +} + +func RemoveDuplicatesFromSorted[T constraints.Ordered](slice []T) []T { + for i := 1; i < len(slice); i++ { + if slice[i] == slice[i-1] { + slice = append(slice[:i], slice[i+1:]...) + i-- + } + } + return slice +} diff --git a/common/sorted_test.go b/erigon-lib/common/sorted_test.go similarity index 51% rename from common/sorted_test.go rename to erigon-lib/common/sorted_test.go index 6465b6ab87c..1ca29dbfb4b 100644 --- a/common/sorted_test.go +++ b/erigon-lib/common/sorted_test.go @@ -1,3 +1,19 @@ +/* + Copyright 2022 The Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + package common import ( diff --git a/crypto/blake2b/blake2b.go b/erigon-lib/crypto/blake2b/blake2b.go similarity index 100% rename from crypto/blake2b/blake2b.go rename to erigon-lib/crypto/blake2b/blake2b.go diff --git a/crypto/blake2b/blake2bAVX2_amd64.go b/erigon-lib/crypto/blake2b/blake2bAVX2_amd64.go similarity index 100% rename from crypto/blake2b/blake2bAVX2_amd64.go rename to erigon-lib/crypto/blake2b/blake2bAVX2_amd64.go diff --git a/crypto/blake2b/blake2bAVX2_amd64.s b/erigon-lib/crypto/blake2b/blake2bAVX2_amd64.s similarity index 100% rename from crypto/blake2b/blake2bAVX2_amd64.s rename to erigon-lib/crypto/blake2b/blake2bAVX2_amd64.s diff --git a/crypto/blake2b/blake2b_amd64.go b/erigon-lib/crypto/blake2b/blake2b_amd64.go similarity index 100% rename from crypto/blake2b/blake2b_amd64.go rename to erigon-lib/crypto/blake2b/blake2b_amd64.go diff --git a/crypto/blake2b/blake2b_amd64.s b/erigon-lib/crypto/blake2b/blake2b_amd64.s similarity index 100% rename from crypto/blake2b/blake2b_amd64.s rename to erigon-lib/crypto/blake2b/blake2b_amd64.s diff --git a/crypto/blake2b/blake2b_f_fuzz.go b/erigon-lib/crypto/blake2b/blake2b_f_fuzz.go similarity index 100% rename from crypto/blake2b/blake2b_f_fuzz.go rename to erigon-lib/crypto/blake2b/blake2b_f_fuzz.go diff --git a/crypto/blake2b/blake2b_f_test.go b/erigon-lib/crypto/blake2b/blake2b_f_test.go similarity index 100% rename from crypto/blake2b/blake2b_f_test.go rename to erigon-lib/crypto/blake2b/blake2b_f_test.go diff --git a/crypto/blake2b/blake2b_generic.go b/erigon-lib/crypto/blake2b/blake2b_generic.go similarity index 100% rename from crypto/blake2b/blake2b_generic.go rename to erigon-lib/crypto/blake2b/blake2b_generic.go diff --git a/crypto/blake2b/blake2b_ref.go b/erigon-lib/crypto/blake2b/blake2b_ref.go similarity index 100% rename from crypto/blake2b/blake2b_ref.go rename to erigon-lib/crypto/blake2b/blake2b_ref.go diff --git a/crypto/blake2b/blake2b_test.go b/erigon-lib/crypto/blake2b/blake2b_test.go similarity index 99% rename from crypto/blake2b/blake2b_test.go rename to erigon-lib/crypto/blake2b/blake2b_test.go index 14f2e3bb73d..dae10de1e55 100644 --- a/crypto/blake2b/blake2b_test.go +++ b/erigon-lib/crypto/blake2b/blake2b_test.go @@ -8,14 +8,17 @@ import ( "bytes" "encoding" "encoding/hex" + "errors" "fmt" - "github.com/ledgerwatch/log/v3" "hash" "io" "testing" + + "github.com/ledgerwatch/log/v3" ) func TestHashes(t *testing.T) { + t.Helper() defer func(sse4, avx, avx2 bool) { useSSE4, useAVX, useAVX2 = sse4, avx, avx2 }(useSSE4, useAVX, useAVX2) @@ -40,6 +43,7 @@ func TestHashes(t *testing.T) { } func TestHashes2X(t *testing.T) { + t.Helper() defer func(sse4, avx, avx2 bool) { useSSE4, useAVX, useAVX2 = sse4, avx, avx2 }(useSSE4, useAVX, useAVX2) @@ -116,6 +120,7 @@ func TestMarshal(t *testing.T) { } func testHashes(t *testing.T) { + t.Helper() key, _ := hex.DecodeString("000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f") input := make([]byte, 255) @@ -149,6 +154,7 @@ func testHashes(t *testing.T) { } func testHashes2X(t *testing.T) { + t.Helper() key, _ := hex.DecodeString("000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f") input := make([]byte, 256) @@ -171,7 +177,7 @@ func testHashes2X(t *testing.T) { if _, err := h.Read(sum); err != nil { t.Fatalf("#%d (single write): error from Read: %v", i, err) } - if n, err := h.Read(sum); n != 0 || err != io.EOF { + if n, err := h.Read(sum); n != 0 || !errors.Is(err, io.EOF) { t.Fatalf("#%d (single write): Read did not return (0, io.EOF) after exhaustion, got (%v, %v)", i, n, err) } if gotHex := fmt.Sprintf("%x", sum); gotHex != expectedHex { @@ -300,6 +306,7 @@ func TestSelfTest(t *testing.T) { // Benchmarks func benchmarkSum(b *testing.B, size int, sse4, avx, avx2 bool) { + b.Helper() // Enable the correct set of instructions defer func(sse4, avx, avx2 bool) { useSSE4, useAVX, useAVX2 = sse4, avx, avx2 @@ -315,6 +322,7 @@ func benchmarkSum(b *testing.B, size int, sse4, avx, avx2 bool) { } func benchmarkWrite(b *testing.B, size int, sse4, avx, avx2 bool) { + b.Helper() // Enable the correct set of instructions defer func(sse4, avx, avx2 bool) { useSSE4, useAVX, useAVX2 = sse4, avx, avx2 diff --git a/crypto/blake2b/blake2x.go b/erigon-lib/crypto/blake2b/blake2x.go similarity index 100% rename from crypto/blake2b/blake2x.go rename to erigon-lib/crypto/blake2b/blake2x.go diff --git a/crypto/blake2b/register.go b/erigon-lib/crypto/blake2b/register.go similarity index 100% rename from crypto/blake2b/register.go rename to erigon-lib/crypto/blake2b/register.go diff --git a/erigon-lib/crypto/kzg/kzg.go b/erigon-lib/crypto/kzg/kzg.go index 8ba97a74645..0008126a286 100644 --- a/erigon-lib/crypto/kzg/kzg.go +++ b/erigon-lib/crypto/kzg/kzg.go @@ -62,7 +62,7 @@ func InitKZGCtx() { var err error // Initialize context to match the configurations that the // specs are using. - gokzgCtx, err = gokzg4844.NewContext4096Insecure1337() + gokzgCtx, err = gokzg4844.NewContext4096Secure() if err != nil { panic(fmt.Sprintf("could not create context, err : %v", err)) } diff --git a/cmd/sentinel/sentinel/request.go b/erigon-lib/diagnostics/entities.go similarity index 58% rename from cmd/sentinel/sentinel/request.go rename to erigon-lib/diagnostics/entities.go index d1e8e8cebf5..9b03d7813f2 100644 --- a/cmd/sentinel/sentinel/request.go +++ b/erigon-lib/diagnostics/entities.go @@ -1,9 +1,12 @@ /* - Copyright 2022 Erigon-Lightclient contributors + Copyright 2021 Erigon contributors + Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at + http://www.apache.org/licenses/LICENSE-2.0 + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -11,22 +14,17 @@ limitations under the License. */ -package sentinel +package diagnostics -import ( - "fmt" - - "github.com/libp2p/go-libp2p/core/peer" -) +type PeerStatisticsGetter interface { + GetPeersStatistics() map[string]*PeerStatistics +} -func (s *Sentinel) RandomPeer(topic string) (peer.ID, error) { - var ( - pid peer.ID - err error - ) - pid, err = connectToRandomPeer(s, string(BeaconBlockTopic)) - if err != nil { - return peer.ID(""), fmt.Errorf("failed to connect to a random peer err=%s", err) - } - return pid, nil +type PeerStatistics struct { + BytesIn uint64 + BytesOut uint64 + CapBytesIn map[string]uint64 + CapBytesOut map[string]uint64 + TypeBytesIn map[string]uint64 + TypeBytesOut map[string]uint64 } diff --git a/erigon-lib/diagnostics/network.go b/erigon-lib/diagnostics/network.go new file mode 100644 index 00000000000..08bfaed8d31 --- /dev/null +++ b/erigon-lib/diagnostics/network.go @@ -0,0 +1,23 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package diagnostics + +import "reflect" + +func (p PeerStatistics) Type() Type { + return Type(reflect.TypeOf(p)) +} diff --git a/erigon-lib/diagnostics/provider.go b/erigon-lib/diagnostics/provider.go new file mode 100644 index 00000000000..c1c2ae756c7 --- /dev/null +++ b/erigon-lib/diagnostics/provider.go @@ -0,0 +1,141 @@ +package diagnostics + +import ( + "context" + "errors" + "fmt" + "reflect" + "sync" + + "github.com/ledgerwatch/erigon-lib/common/dbg" + "github.com/ledgerwatch/log/v3" +) + +type ctxKey int + +const ( + ckChan ctxKey = iota +) + +type Type reflect.Type + +type Info interface { + Type() Type +} + +func TypeOf(i Info) Type { + t := reflect.TypeOf(i) + return Type(t) +} + +type Provider interface { + StartDiagnostics(ctx context.Context) error +} + +type ProviderFunc func(ctx context.Context) error + +func (f ProviderFunc) StartDiagnostics(ctx context.Context) error { + return f(ctx) +} + +type registry struct { + context context.Context + providers []Provider +} + +var providers = map[Type]*registry{} +var providerMutex sync.RWMutex + +func RegisterProvider(provider Provider, infoType Type, logger log.Logger) { + providerMutex.Lock() + defer providerMutex.Unlock() + + reg, _ := providers[infoType] + + if reg != nil { + for _, p := range reg.providers { + if p == provider { + return + } + } + } else { + reg = ®istry{} + providers[infoType] = reg + } + + reg.providers = append(reg.providers, provider) + + if reg.context != nil { + go startProvider(reg.context, infoType, provider, logger) + } +} + +func StartProviders(ctx context.Context, infoType Type, logger log.Logger) { + providerMutex.Lock() + + reg, _ := providers[infoType] + + toStart := make([]Provider, len(reg.providers)) + + for i, provider := range reg.providers { + toStart[i] = provider + } + + reg.context = ctx + + providerMutex.Unlock() + + for _, provider := range toStart { + go startProvider(ctx, infoType, provider, logger) + } +} + +func startProvider(ctx context.Context, infoType Type, provider Provider, logger log.Logger) { + defer func() { + if rec := recover(); rec != nil { + err := fmt.Errorf("%+v, trace: %s", rec, dbg.Stack()) + logger.Warn("Diagnostic provider failed", "type", infoType, "err", err) + } + }() + + if err := provider.StartDiagnostics(ctx); err != nil { + if !errors.Is(err, context.Canceled) { + logger.Warn("Diagnostic provider failed", "type", infoType, "err", err) + } + } +} + +func Send[I Info](ctx context.Context, info I) error { + if ctx.Err() != nil { + return ctx.Err() + } + + cval := ctx.Value(ckChan) + if c, ok := cval.(chan I); ok { + select { + case c <- info: + default: + // drop the diagnostic message if the receiver is busy + // so the sender is not blocked on non critcal actions + } + } else { + return fmt.Errorf("unexpected channel type: %T", cval) + } + + return nil +} + +func Context[I Info](ctx context.Context, buffer int) (context.Context, <-chan I, context.CancelFunc) { + ch := make(chan I, buffer) + ctx = context.WithValue(ctx, ckChan, ch) + ctx, cancel := context.WithCancel(ctx) + + return ctx, ch, func() { + if ch != nil { + toClose := ch + ch = nil + close(toClose) + } + cancel() + } +} diff --git a/erigon-lib/diagnostics/provider_test.go b/erigon-lib/diagnostics/provider_test.go new file mode 100644 index 00000000000..7d8ea6b10ec --- /dev/null +++ b/erigon-lib/diagnostics/provider_test.go @@ -0,0 +1,87 @@ +package diagnostics_test + +import ( + "context" + "testing" + "time" + + "github.com/ledgerwatch/erigon-lib/diagnostics" + "github.com/ledgerwatch/log/v3" +) + +type testInfo struct { + count int +} + +func (ti testInfo) Type() diagnostics.Type { + return diagnostics.TypeOf(ti) +} + +type testProvider struct { +} + +func (t *testProvider) StartDiagnostics(ctx context.Context) error { + timer := time.NewTicker(1 * time.Second) + defer timer.Stop() + + var count int + + for { + select { + case <-ctx.Done(): + return nil + case <-timer.C: + diagnostics.Send(ctx, testInfo{count}) + count++ + } + } +} + +func TestProviderRegistration(t *testing.T) { + + // diagnostics provider + provider := &testProvider{} + diagnostics.RegisterProvider(provider, diagnostics.TypeOf(testInfo{}), log.Root()) + + // diagnostics receiver + ctx, ch, cancel := diagnostics.Context[testInfo](context.Background(), 1) + diagnostics.StartProviders(ctx, diagnostics.TypeOf(testInfo{}), log.Root()) + + for info := range ch { + if info.count == 3 { + cancel() + } + } +} + +func TestProviderFuncRegistration(t *testing.T) { + + // diagnostics provider + diagnostics.RegisterProvider(diagnostics.ProviderFunc(func(ctx context.Context) error { + timer := time.NewTicker(1 * time.Second) + defer timer.Stop() + + var count int + + for { + select { + case <-ctx.Done(): + return nil + case <-timer.C: + diagnostics.Send(ctx, testInfo{count}) + count++ + } + } + }), diagnostics.TypeOf(testInfo{}), log.Root()) + + // diagnostics receiver + ctx, ch, cancel := diagnostics.Context[testInfo](context.Background(), 1) + + diagnostics.StartProviders(ctx, diagnostics.TypeOf(testInfo{}), log.Root()) + + for info := range ch { + if info.count == 3 { + cancel() + } + } +} diff --git a/erigon-lib/direct/downloader_client.go b/erigon-lib/direct/downloader_client.go index a6924a1ebe7..abb85adc88f 100644 --- a/erigon-lib/direct/downloader_client.go +++ b/erigon-lib/direct/downloader_client.go @@ -35,6 +35,9 @@ func NewDownloaderClient(server proto_downloader.DownloaderServer) *DownloaderCl func (c *DownloaderClient) Download(ctx context.Context, in *proto_downloader.DownloadRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { return c.server.Download(ctx, in) } +func (c *DownloaderClient) Delete(ctx context.Context, in *proto_downloader.DeleteRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { + return c.server.Delete(ctx, in) +} func (c *DownloaderClient) Verify(ctx context.Context, in *proto_downloader.VerifyRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { return c.server.Verify(ctx, in) } diff --git a/erigon-lib/direct/execution_client.go b/erigon-lib/direct/execution_client.go index d5899815eae..e2e8d8da1c9 100644 --- a/erigon-lib/direct/execution_client.go +++ b/erigon-lib/direct/execution_client.go @@ -96,3 +96,7 @@ func (s *ExecutionClientDirect) GetForkChoice(ctx context.Context, in *emptypb.E func (s *ExecutionClientDirect) Ready(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*execution.ReadyResponse, error) { return s.server.Ready(ctx, in) } + +func (s *ExecutionClientDirect) FrozenBlocks(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*execution.FrozenBlocksResponse, error) { + return s.server.FrozenBlocks(ctx, in) +} diff --git a/erigon-lib/direct/sentinel_client.go b/erigon-lib/direct/sentinel_client.go index 86481b4fb77..f421f4332bf 100644 --- a/erigon-lib/direct/sentinel_client.go +++ b/erigon-lib/direct/sentinel_client.go @@ -20,6 +20,7 @@ import ( "context" "io" + "github.com/ledgerwatch/erigon-lib/diagnostics" "github.com/ledgerwatch/erigon-lib/gointerfaces/sentinel" "google.golang.org/grpc" ) @@ -110,3 +111,12 @@ func (s *SentinelSubscribeGossipS) Err(err error) { } s.ch <- &gossipReply{err: err} } + +func (s *SentinelClientDirect) GetPeersStatistics() map[string]*diagnostics.PeerStatistics { + + if diag, ok := s.server.(diagnostics.PeerStatisticsGetter); ok { + return diag.GetPeersStatistics() + } + + return map[string]*diagnostics.PeerStatistics{} +} diff --git a/erigon-lib/downloader/downloader.go b/erigon-lib/downloader/downloader.go index 4159f844716..9498479ce59 100644 --- a/erigon-lib/downloader/downloader.go +++ b/erigon-lib/downloader/downloader.go @@ -78,7 +78,7 @@ type AggStats struct { UploadRate, DownloadRate uint64 } -func New(ctx context.Context, cfg *downloadercfg.Cfg, logger log.Logger, verbosity log.Lvl) (*Downloader, error) { +func New(ctx context.Context, cfg *downloadercfg.Cfg, dirs datadir.Dirs, logger log.Logger, verbosity log.Lvl) (*Downloader, error) { db, c, m, torrentClient, err := openClient(ctx, cfg.Dirs.Downloader, cfg.Dirs.Snap, cfg.ClientConfig) if err != nil { return nil, fmt.Errorf("openClient: %w", err) @@ -119,7 +119,7 @@ func New(ctx context.Context, cfg *downloadercfg.Cfg, logger log.Logger, verbosi d.wg.Add(1) go func() { defer d.wg.Done() - d.webseeds.Discover(d.ctx, d.cfg.WebSeedUrls, d.cfg.WebSeedFiles, d.cfg.Dirs.Snap) + d.webseeds.Discover(d.ctx, d.cfg.WebSeedS3Tokens, d.cfg.WebSeedUrls, d.cfg.WebSeedFiles, d.cfg.Dirs.Snap) // webseeds.Discover may create new .torrent files on disk if err := d.addTorrentFilesFromDisk(true); err != nil && !errors.Is(err, context.Canceled) { d.logger.Warn("[snapshots] addTorrentFilesFromDisk", "err", err) @@ -610,9 +610,9 @@ func openClient(ctx context.Context, dbDir, snapDir string, cfg *torrent.ClientC db, err = mdbx.NewMDBX(log.New()). Label(kv.DownloaderDB). WithTableCfg(func(defaultBuckets kv.TableCfg) kv.TableCfg { return kv.DownloaderTablesCfg }). - SyncPeriod(15 * time.Second). GrowthStep(16 * datasize.MB). MapSize(16 * datasize.GB). + PageSize(uint64(8 * datasize.KB)). Path(dbDir). Open(ctx) if err != nil { diff --git a/erigon-lib/downloader/downloader_grpc_server.go b/erigon-lib/downloader/downloader_grpc_server.go index 8ac52512871..61398d74bcd 100644 --- a/erigon-lib/downloader/downloader_grpc_server.go +++ b/erigon-lib/downloader/downloader_grpc_server.go @@ -19,6 +19,8 @@ package downloader import ( "context" "fmt" + "os" + "path/filepath" "time" "github.com/anacrolix/torrent/metainfo" @@ -44,6 +46,7 @@ type GrpcServer struct { // Download - create new .torrent ONLY if initialSync, everything else Erigon can generate by itself func (s *GrpcServer) Download(ctx context.Context, request *proto_downloader.DownloadRequest) (*emptypb.Empty, error) { + defer s.d.ReCalcStats(10 * time.Second) // immediately call ReCalc to set stat.Complete flag logEvery := time.NewTicker(20 * time.Second) defer logEvery.Stop() @@ -70,7 +73,33 @@ func (s *GrpcServer) Download(ctx context.Context, request *proto_downloader.Dow return nil, err } } - s.d.ReCalcStats(10 * time.Second) // immediately call ReCalc to set stat.Complete flag + return &emptypb.Empty{}, nil +} + +// Delete - stop seeding, remove file, remove .torrent +func (s *GrpcServer) Delete(ctx context.Context, request *proto_downloader.DeleteRequest) (*emptypb.Empty, error) { + defer s.d.ReCalcStats(10 * time.Second) // immediately call ReCalc to set stat.Complete flag + torrents := s.d.torrentClient.Torrents() + for _, name := range request.Paths { + if name == "" { + return nil, fmt.Errorf("field 'path' is required") + } + for _, t := range torrents { + select { + case <-t.GotInfo(): + continue + default: + } + if t.Name() == name { + t.Drop() + break + } + } + + fPath := filepath.Join(s.d.SnapDir(), name) + _ = os.Remove(fPath) + _ = os.Remove(fPath + ".torrent") + } return &emptypb.Empty{}, nil } diff --git a/erigon-lib/downloader/downloader_test.go b/erigon-lib/downloader/downloader_test.go index 493e3bddd43..5a82307b38b 100644 --- a/erigon-lib/downloader/downloader_test.go +++ b/erigon-lib/downloader/downloader_test.go @@ -16,9 +16,9 @@ import ( func TestChangeInfoHashOfSameFile(t *testing.T) { require := require.New(t) dirs := datadir.New(t.TempDir()) - cfg, err := downloadercfg2.New(dirs, "", lg.Info, 0, 0, 0, 0, 0, nil, "") + cfg, err := downloadercfg2.New(dirs, "", lg.Info, 0, 0, 0, 0, 0, nil, nil, "testnet") require.NoError(err) - d, err := New(context.Background(), cfg, log.New(), log.LvlInfo) + d, err := New(context.Background(), cfg, dirs, log.New(), log.LvlInfo) require.NoError(err) defer d.Close() err = d.AddInfoHashAsMagnetLink(d.ctx, snaptype.Hex2InfoHash("aa"), "a.seg") diff --git a/erigon-lib/downloader/downloadercfg/downloadercfg.go b/erigon-lib/downloader/downloadercfg/downloadercfg.go index f8737d2f6a9..b9e1d0dc289 100644 --- a/erigon-lib/downloader/downloadercfg/downloadercfg.go +++ b/erigon-lib/downloader/downloadercfg/downloadercfg.go @@ -29,7 +29,6 @@ import ( lg "github.com/anacrolix/log" "github.com/anacrolix/torrent" "github.com/c2h5oh/datasize" - "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/datadir" "github.com/ledgerwatch/erigon-lib/common/dir" "github.com/ledgerwatch/log/v3" @@ -51,14 +50,19 @@ type Cfg struct { WebSeedUrls []*url.URL WebSeedFiles []string + WebSeedS3Tokens []string DownloadTorrentFilesFromWebseed bool + ChainName string Dirs datadir.Dirs } func Default() *torrent.ClientConfig { torrentConfig := torrent.NewDefaultClientConfig() - torrentConfig.PieceHashersPerTorrent = runtime.NumCPU() + // better don't increase because erigon periodically producing "new seedable files" - and adding them to downloader. + // it must not impact chain tip sync - so, limit resources to minimum by default. + // but when downloader is started as a separated process - rise it to max + //torrentConfig.PieceHashersPerTorrent = cmp.Max(1, runtime.NumCPU()-1) torrentConfig.MinDialTimeout = 6 * time.Second //default: 3s torrentConfig.HandshakesTimeout = 8 * time.Second //default: 4s @@ -85,7 +89,7 @@ func Default() *torrent.ClientConfig { return torrentConfig } -func New(dirs datadir.Dirs, version string, verbosity lg.Level, downloadRate, uploadRate datasize.ByteSize, port, connsPerFile, downloadSlots int, staticPeers []string, webseeds string) (*Cfg, error) { +func New(dirs datadir.Dirs, version string, verbosity lg.Level, downloadRate, uploadRate datasize.ByteSize, port, connsPerFile, downloadSlots int, staticPeers, webseeds []string, chainName string) (*Cfg, error) { torrentConfig := Default() torrentConfig.DataDir = dirs.Snap // `DataDir` of torrent-client-lib is different from Erigon's `DataDir`. Just same naming. @@ -144,27 +148,31 @@ func New(dirs datadir.Dirs, version string, verbosity lg.Level, downloadRate, up //staticPeers } - webseedUrlsOrFiles := common.CliString2Array(webseeds) - webseedUrls := make([]*url.URL, 0, len(webseedUrlsOrFiles)) - webseedFiles := make([]string, 0, len(webseedUrlsOrFiles)) + webseedUrlsOrFiles := webseeds + webseedHttpProviders := make([]*url.URL, 0, len(webseedUrlsOrFiles)) + webseedFileProviders := make([]string, 0, len(webseedUrlsOrFiles)) + webseedS3Providers := make([]string, 0, len(webseedUrlsOrFiles)) for _, webseed := range webseedUrlsOrFiles { + if strings.HasPrefix(webseed, "v") { // has marker v1/v2/... + webseedS3Providers = append(webseedS3Providers, webseed) + continue + } uri, err := url.ParseRequestURI(webseed) if err != nil { if strings.HasSuffix(webseed, ".toml") && dir.FileExist(webseed) { - webseedFiles = append(webseedFiles, webseed) + webseedFileProviders = append(webseedFileProviders, webseed) } continue } - webseedUrls = append(webseedUrls, uri) + webseedHttpProviders = append(webseedHttpProviders, uri) } localCfgFile := filepath.Join(dirs.DataDir, "webseed.toml") // datadir/webseed.toml allowed if dir.FileExist(localCfgFile) { - webseedFiles = append(webseedFiles, localCfgFile) + webseedFileProviders = append(webseedFileProviders, localCfgFile) } - - return &Cfg{Dirs: dirs, + return &Cfg{Dirs: dirs, ChainName: chainName, ClientConfig: torrentConfig, DownloadSlots: downloadSlots, - WebSeedUrls: webseedUrls, WebSeedFiles: webseedFiles, + WebSeedUrls: webseedHttpProviders, WebSeedFiles: webseedFileProviders, WebSeedS3Tokens: webseedS3Providers, }, nil } diff --git a/erigon-lib/downloader/downloadercfg/logger.go b/erigon-lib/downloader/downloadercfg/logger.go index 8878e9004ed..b3a3178d101 100644 --- a/erigon-lib/downloader/downloadercfg/logger.go +++ b/erigon-lib/downloader/downloadercfg/logger.go @@ -73,81 +73,65 @@ func (b adapterHandler) Handle(r lg.Record) { strings.Contains(str, "EOF") || strings.Contains(str, "closed") || strings.Contains(str, "connection reset by peer") || strings.Contains(str, "use of closed network connection") || strings.Contains(str, "broken pipe") || strings.Contains(str, "inited with remoteAddr") if skip { + log.Trace(str, "lvl", lvl.LogString()) break } log.Debug(str) case lg.Info: str := r.String() - skip := false //strings.Contains(str, "EOF") + skip := strings.Contains(str, "EOF") //strings.Contains(str, "banning ip ") || //strings.Contains(str, "spurious timer") { // suppress useless errors if skip { + log.Trace(str, "lvl", lvl.LogString()) break } - log.Info(str) case lg.Warning: str := r.String() - skip := false - - //if strings.Contains(str, "could not find offer for id") { // suppress useless errors - // break - //} - //if strings.Contains(str, "webrtc conn for unloaded torrent") { // suppress useless errors - // break - //} - //if strings.Contains(str, "TrackerClient closed") { // suppress useless errors - // break - //} - //if strings.Contains(str, "banned ip") { // suppress useless errors - // break - //} - //if strings.Contains(str, "being sole dirtier of piece") { // suppress useless errors - // break - //} - //if strings.Contains(str, "requested chunk too long") { // suppress useless errors - // break - //} - //if strings.Contains(str, "reservation cancelled") { // suppress useless errors - // break - //} - //if strings.Contains(str, "received invalid reject") { // suppress useless errors - // break - //} + skip := strings.Contains(str, "EOF") || + strings.Contains(str, "requested chunk too long") || + strings.Contains(str, "banned ip") || + strings.Contains(str, "banning webseed") || + strings.Contains(str, "TrackerClient closed") || + strings.Contains(str, "being sole dirtier of piece") || + strings.Contains(str, "webrtc conn for unloaded torrent") || + strings.Contains(str, "could not find offer for id") || + strings.Contains(str, "received invalid reject") || + strings.Contains(str, "reservation cancelled") if skip { + log.Trace(str) break } log.Warn(str) case lg.Error: str := r.String() - skip := false - //if strings.Contains(str, "EOF") { // suppress useless errors - // break - //} - + skip := strings.Contains(str, "EOF") || + strings.Contains(str, "short write") || + strings.Contains(str, "disabling data download") if skip { + log.Trace(str, "lvl", lvl.LogString()) break } log.Error(str) case lg.Critical: str := r.String() - skip := false - //if strings.Contains(str, "EOF") { // suppress useless errors - // break - //} - //if strings.Contains(str, "don't want conns") { // suppress useless errors - // break - //} - //if strings.Contains(str, "torrent closed") { // suppress useless errors - // break - //} - + skip := strings.Contains(str, "EOF") || + strings.Contains(str, "torrent closed") || + strings.Contains(str, "don't want conns") if skip { + log.Trace(str, "lvl", lvl.LogString()) break } log.Error(str) default: + str := r.String() + skip := strings.Contains(str, "EOF") || strings.Contains(str, "unhandled response status") + if skip { + log.Trace(str, "lvl", lvl.LogString()) + break + } log.Info("[downloader] "+r.String(), "torrent_log_type", "unknown", "or", lvl.LogString()) } } diff --git a/erigon-lib/downloader/snaptype/files.go b/erigon-lib/downloader/snaptype/files.go index e45ecd598eb..069707cfe29 100644 --- a/erigon-lib/downloader/snaptype/files.go +++ b/erigon-lib/downloader/snaptype/files.go @@ -41,8 +41,11 @@ const ( BorEvents BorSpans NumberOfTypes + BeaconBlocks ) +var BorSnapshotTypes = []Type{BorEvents, BorSpans} + func (ft Type) String() string { switch ft { case Headers: @@ -55,6 +58,8 @@ func (ft Type) String() string { return "borevents" case BorSpans: return "borspans" + case BeaconBlocks: + return "beaconblocks" default: panic(fmt.Sprintf("unknown file type: %d", ft)) } @@ -72,6 +77,8 @@ func ParseFileType(s string) (Type, bool) { return BorEvents, true case "borspans": return BorSpans, true + case "beaconblocks": + return BeaconBlocks, true default: return NumberOfTypes, false } @@ -85,7 +92,7 @@ const ( func (it IdxType) String() string { return string(it) } -var AllSnapshotTypes = []Type{Headers, Bodies, Transactions} +var BlockSnapshotTypes = []Type{Headers, Bodies, Transactions} var ( ErrInvalidFileName = fmt.Errorf("invalid compressed file name") @@ -117,7 +124,7 @@ func FilesWithExt(dir, expectExt string) ([]FileInfo, error) { func IsCorrectFileName(name string) bool { parts := strings.Split(name, "-") - return len(parts) == 4 && parts[3] != "v1" + return len(parts) == 4 } func IsCorrectHistoryFileName(name string) bool { @@ -150,7 +157,15 @@ func ParseFileName(dir, fileName string) (res FileInfo, ok bool) { } const Erigon3SeedableSteps = 32 -const Erigon2SegmentSize = 500_000 + +// Use-cases: +// - produce and seed snapshots earlier on chain tip. reduce depnedency on "good peers with history" at p2p-network. +// Some networks have no much archive peers, also ConsensusLayer clients are not-good(not-incentivised) at serving history. +// - avoiding having too much files: +// more files(shards) - means "more metadata", "more lookups for non-indexed queries", "more dictionaries", "more bittorrent connections", ... +// less files - means small files will be removed after merge (no peers for this files). +const Erigon2RecentMergeLimit = 100_000 //nolint +const Erigon2MergeLimit = 500_000 const Erigon2MinSegmentSize = 1_000 // FileInfo - parsed file metadata @@ -162,8 +177,10 @@ type FileInfo struct { } func (f FileInfo) TorrentFileExists() bool { return dir.FileExist(f.Path + ".torrent") } -func (f FileInfo) Seedable() bool { return f.To-f.From == Erigon2SegmentSize } -func (f FileInfo) NeedTorrentFile() bool { return f.Seedable() && !f.TorrentFileExists() } +func (f FileInfo) Seedable() bool { + return f.To-f.From == Erigon2MergeLimit || f.To-f.From == Erigon2RecentMergeLimit +} +func (f FileInfo) NeedTorrentFile() bool { return f.Seedable() && !f.TorrentFileExists() } func IdxFiles(dir string) (res []FileInfo, err error) { return FilesWithExt(dir, ".idx") } func Segments(dir string) (res []FileInfo, err error) { return FilesWithExt(dir, ".seg") } diff --git a/erigon-lib/downloader/util.go b/erigon-lib/downloader/util.go index 7bf8f58274b..cc557e09f55 100644 --- a/erigon-lib/downloader/util.go +++ b/erigon-lib/downloader/util.go @@ -292,23 +292,6 @@ func loadTorrent(torrentFilePath string) (*torrent.TorrentSpec, error) { mi.AnnounceList = Trackers return torrent.TorrentSpecFromMetaInfoErr(mi) } -func saveTorrent(torrentFilePath string, res []byte) error { - if len(res) == 0 { - return fmt.Errorf("try to write 0 bytes to file: %s", torrentFilePath) - } - f, err := os.Create(torrentFilePath) - if err != nil { - return err - } - defer f.Close() - if _, err = f.Write(res); err != nil { - return err - } - if err = f.Sync(); err != nil { - return err - } - return nil -} // addTorrentFile - adding .torrent file to torrentClient (and checking their hashes), if .torrent file // added first time - pieces verification process will start (disk IO heavy) - Progress diff --git a/erigon-lib/downloader/webseed.go b/erigon-lib/downloader/webseed.go index d0992681e48..5cbb2b0e908 100644 --- a/erigon-lib/downloader/webseed.go +++ b/erigon-lib/downloader/webseed.go @@ -1,10 +1,8 @@ package downloader import ( - "bytes" "context" "fmt" - "io" "net/http" "net/url" "os" @@ -12,14 +10,15 @@ import ( "strings" "sync" - "github.com/anacrolix/torrent/bencode" + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/config" + "github.com/aws/aws-sdk-go-v2/credentials" + "github.com/aws/aws-sdk-go-v2/service/s3" + "github.com/anacrolix/torrent/metainfo" - "github.com/c2h5oh/datasize" - "github.com/ledgerwatch/erigon-lib/common/dir" "github.com/ledgerwatch/erigon-lib/downloader/snaptype" "github.com/ledgerwatch/log/v3" "github.com/pelletier/go-toml/v2" - "golang.org/x/sync/errgroup" ) // WebSeeds - allow use HTTP-based infrastrucutre to support Bittorrent network @@ -35,22 +34,35 @@ type WebSeeds struct { verbosity log.Lvl } -func (d *WebSeeds) Discover(ctx context.Context, urls []*url.URL, files []string, rootDir string) { - d.downloadWebseedTomlFromProviders(ctx, urls, files) - d.downloadTorrentFilesFromProviders(ctx, rootDir) +func (d *WebSeeds) Discover(ctx context.Context, s3tokens []string, urls []*url.URL, files []string, rootDir string) { + d.downloadWebseedTomlFromProviders(ctx, s3tokens, urls, files) } -func (d *WebSeeds) downloadWebseedTomlFromProviders(ctx context.Context, providers []*url.URL, diskProviders []string) { - list := make([]snaptype.WebSeedsFromProvider, 0, len(providers)+len(diskProviders)) - for _, webSeedProviderURL := range providers { +func (d *WebSeeds) downloadWebseedTomlFromProviders(ctx context.Context, s3Providers []string, httpProviders []*url.URL, diskProviders []string) { + log.Debug("[snapshots] webseed providers", "http", len(httpProviders), "s3", len(s3Providers), "disk", len(diskProviders)) + list := make([]snaptype.WebSeedsFromProvider, 0, len(httpProviders)+len(diskProviders)) + for _, webSeedProviderURL := range httpProviders { select { case <-ctx.Done(): break default: } - response, err := d.callWebSeedsProvider(ctx, webSeedProviderURL) + response, err := d.callHttpProvider(ctx, webSeedProviderURL) if err != nil { // don't fail on error - d.logger.Debug("[snapshots] downloadWebseedTomlFromProviders", "err", err, "url", webSeedProviderURL.EscapedPath()) + d.logger.Debug("[snapshots.webseed] get from HTTP provider", "err", err, "url", webSeedProviderURL.EscapedPath()) + continue + } + list = append(list, response) + } + for _, webSeedProviderURL := range s3Providers { + select { + case <-ctx.Done(): + break + default: + } + response, err := d.callS3Provider(ctx, webSeedProviderURL) + if err != nil { // don't fail on error + d.logger.Debug("[snapshots.webseed] get from S3 provider", "err", err) continue } list = append(list, response) @@ -59,13 +71,9 @@ func (d *WebSeeds) downloadWebseedTomlFromProviders(ctx context.Context, provide for _, webSeedFile := range diskProviders { response, err := d.readWebSeedsFile(webSeedFile) if err != nil { // don't fail on error - _, fileName := filepath.Split(webSeedFile) - d.logger.Debug("[snapshots] downloadWebseedTomlFromProviders", "err", err, "file", fileName) + d.logger.Debug("[snapshots.webseed] get from File provider", "err", err) continue } - if len(diskProviders) > 0 { - d.logger.Log(d.verbosity, "[snapshots] see webseed.toml file", "files", webSeedFile) - } list = append(list, response) } @@ -91,59 +99,6 @@ func (d *WebSeeds) downloadWebseedTomlFromProviders(ctx context.Context, provide d.torrentUrls = torrentUrls } -// downloadTorrentFilesFromProviders - if they are not exist on file-system -func (d *WebSeeds) downloadTorrentFilesFromProviders(ctx context.Context, rootDir string) { - // TODO: need more tests, need handle more forward-compatibility and backward-compatibility case - // - now, if add new type of .torrent files to S3 bucket - existing nodes will start downloading it. maybe need whitelist of file types - // - maybe need download new files if --snap.stop=true - if !d.downloadTorrentFile { - return - } - if len(d.TorrentUrls()) == 0 { - return - } - var addedNew int - e, ctx := errgroup.WithContext(ctx) - urlsByName := d.TorrentUrls() - //TODO: - // - what to do if node already synced? - for name, tUrls := range urlsByName { - tPath := filepath.Join(rootDir, name) - if dir.FileExist(tPath) { - continue - } - addedNew++ - if strings.HasSuffix(name, ".v.torrent") || strings.HasSuffix(name, ".ef.torrent") { - _, fName := filepath.Split(name) - if strings.HasPrefix(fName, "commitment") { - d.logger.Log(d.verbosity, "[snapshots] webseed has .torrent, but we skip it because we don't support it yet", "name", name) - continue - } - } - name := name - tUrls := tUrls - e.Go(func() error { - for _, url := range tUrls { - res, err := d.callTorrentUrlProvider(ctx, url) - if err != nil { - d.logger.Debug("[snapshots] callTorrentUrlProvider", "err", err) - continue - } - d.logger.Log(d.verbosity, "[snapshots] downloaded .torrent file from webseed", "name", name) - if err := saveTorrent(tPath, res); err != nil { - d.logger.Debug("[snapshots] saveTorrent", "err", err) - continue - } - return nil - } - return nil - }) - } - if err := e.Wait(); err != nil { - d.logger.Debug("[snapshots] webseed discover", "err", err) - } -} - func (d *WebSeeds) TorrentUrls() snaptype.TorrentUrls { d.lock.Lock() defer d.lock.Unlock() @@ -162,7 +117,7 @@ func (d *WebSeeds) ByFileName(name string) (metainfo.UrlList, bool) { v, ok := d.byFileName[name] return v, ok } -func (d *WebSeeds) callWebSeedsProvider(ctx context.Context, webSeedProviderUrl *url.URL) (snaptype.WebSeedsFromProvider, error) { +func (d *WebSeeds) callHttpProvider(ctx context.Context, webSeedProviderUrl *url.URL) (snaptype.WebSeedsFromProvider, error) { request, err := http.NewRequest(http.MethodGet, webSeedProviderUrl.String(), nil) if err != nil { return nil, err @@ -170,54 +125,73 @@ func (d *WebSeeds) callWebSeedsProvider(ctx context.Context, webSeedProviderUrl request = request.WithContext(ctx) resp, err := http.DefaultClient.Do(request) if err != nil { - return nil, err + return nil, fmt.Errorf("webseed.http: host=%s, url=%s, %w", webSeedProviderUrl.Hostname(), webSeedProviderUrl.EscapedPath(), err) } defer resp.Body.Close() response := snaptype.WebSeedsFromProvider{} if err := toml.NewDecoder(resp.Body).Decode(&response); err != nil { - return nil, err + return nil, fmt.Errorf("webseed.http: host=%s, url=%s, %w", webSeedProviderUrl.Hostname(), webSeedProviderUrl.EscapedPath(), err) } + d.logger.Debug("[snapshots.webseed] get from HTTP provider", "urls", len(response), "host", webSeedProviderUrl.Hostname(), "url", webSeedProviderUrl.EscapedPath()) return response, nil } -func (d *WebSeeds) callTorrentUrlProvider(ctx context.Context, url *url.URL) ([]byte, error) { - request, err := http.NewRequest(http.MethodGet, url.String(), nil) - if err != nil { - return nil, err +func (d *WebSeeds) callS3Provider(ctx context.Context, token string) (snaptype.WebSeedsFromProvider, error) { + //v1:bucketName:accID:accessKeyID:accessKeySecret + l := strings.Split(token, ":") + if len(l) != 5 { + return nil, fmt.Errorf("token has invalid format, exepcing 'v1:tokenInBase64'") } - request = request.WithContext(ctx) - resp, err := http.DefaultClient.Do(request) - if err != nil { - return nil, err + version, bucketName, accountId, accessKeyId, accessKeySecret := strings.TrimSpace(l[0]), strings.TrimSpace(l[1]), strings.TrimSpace(l[2]), strings.TrimSpace(l[3]), strings.TrimSpace(l[4]) + if version != "v1" { + return nil, fmt.Errorf("not supported version: %s", version) } - defer resp.Body.Close() - //protect against too small and too big data - if resp.ContentLength == 0 || resp.ContentLength > int64(128*datasize.MB) { - return nil, nil - } - res, err := io.ReadAll(resp.Body) + var fileName = "webseeds.toml" + + r2Resolver := aws.EndpointResolverWithOptionsFunc(func(service, region string, options ...interface{}) (aws.Endpoint, error) { + return aws.Endpoint{ + URL: fmt.Sprintf("https://%s.r2.cloudflarestorage.com", accountId), + }, nil + }) + cfg, err := config.LoadDefaultConfig(ctx, + config.WithEndpointResolverWithOptions(r2Resolver), + config.WithCredentialsProvider(credentials.NewStaticCredentialsProvider(accessKeyId, accessKeySecret, "")), + ) if err != nil { return nil, err } - if err = validateTorrentBytes(res, url.Path); err != nil { - return nil, err + + client := s3.NewFromConfig(cfg) + // { + // "ChecksumAlgorithm": null, + // "ETag": "\"eb2b891dc67b81755d2b726d9110af16\"", + // "Key": "ferriswasm.png", + // "LastModified": "2022-05-18T17:20:21.67Z", + // "Owner": null, + // "Size": 87671, + // "StorageClass": "STANDARD" + // } + resp, err := client.GetObject(ctx, &s3.GetObjectInput{Bucket: &bucketName, Key: &fileName}) + if err != nil { + return nil, fmt.Errorf("webseed.s3: bucket=%s, %w", bucketName, err) } - return res, nil -} -func validateTorrentBytes(b []byte, url string) error { - var mi metainfo.MetaInfo - if err := bencode.NewDecoder(bytes.NewBuffer(b)).Decode(&mi); err != nil { - return fmt.Errorf("invalid bytes received from url %s, err=%w", url, err) + defer resp.Body.Close() + response := snaptype.WebSeedsFromProvider{} + if err := toml.NewDecoder(resp.Body).Decode(&response); err != nil { + return nil, fmt.Errorf("webseed.s3: bucket=%s, %w", bucketName, err) } - return nil + d.logger.Debug("[snapshots.webseed] get from S3 provider", "urls", len(response), "bucket", bucketName) + return response, nil } func (d *WebSeeds) readWebSeedsFile(webSeedProviderPath string) (snaptype.WebSeedsFromProvider, error) { + _, fileName := filepath.Split(webSeedProviderPath) data, err := os.ReadFile(webSeedProviderPath) if err != nil { - return nil, err + return nil, fmt.Errorf("webseed.readWebSeedsFile: file=%s, %w", fileName, err) } response := snaptype.WebSeedsFromProvider{} if err := toml.Unmarshal(data, &response); err != nil { - return nil, err + return nil, fmt.Errorf("webseed.readWebSeedsFile: file=%s, %w", fileName, err) } + d.logger.Debug("[snapshots.webseed] get from File provider", "urls", len(response), "file", fileName) return response, nil } diff --git a/erigon-lib/etl/buffers.go b/erigon-lib/etl/buffers.go index 5d0c2e4e761..a05f1614c08 100644 --- a/erigon-lib/etl/buffers.go +++ b/erigon-lib/etl/buffers.go @@ -36,6 +36,7 @@ const ( // SortableOldestAppearedBuffer - buffer that keeps only the oldest entries. // if first v1 was added under key K, then v2; only v1 will stay SortableOldestAppearedBuffer + SortableMergeBuffer //BufIOSize - 128 pages | default is 1 page | increasing over `64 * 4096` doesn't show speedup on SSD/NVMe, but show speedup in cloud drives BufIOSize = 128 * 4096 @@ -211,8 +212,8 @@ func (b *appendSortableBuffer) Put(k, v []byte) { b.size += len(k) } b.size += len(v) - stored = append(stored, v...) - b.entries[string(k)] = stored + fmt.Printf("put: %d, %x, %x . %x\n", b.size, k, stored, v) + b.entries[string(k)] = append(stored, v...) } func (b *appendSortableBuffer) Size() int { return b.size } @@ -222,8 +223,8 @@ func (b *appendSortableBuffer) Len() int { return len(b.entries) } func (b *appendSortableBuffer) Sort() { - for i := range b.entries { - b.sortedBuf = append(b.sortedBuf, sortableBufferEntry{key: []byte(i), value: b.entries[i]}) + for key, val := range b.entries { + b.sortedBuf = append(b.sortedBuf, sortableBufferEntry{key: []byte(key), value: val}) } sort.Stable(b) } @@ -255,6 +256,7 @@ func (b *appendSortableBuffer) Write(w io.Writer) error { var numBuf [binary.MaxVarintLen64]byte entries := b.sortedBuf for _, entry := range entries { + fmt.Printf("write: %x, %x\n", entry.key, entry.value) lk := int64(len(entry.key)) if entry.key == nil { lk = -1 @@ -266,7 +268,7 @@ func (b *appendSortableBuffer) Write(w io.Writer) error { if _, err := w.Write(entry.key); err != nil { return err } - lv := int64(len(entry.key)) + lv := int64(len(entry.value)) if entry.value == nil { lv = -1 } @@ -381,7 +383,7 @@ func (b *oldestEntrySortableBuffer) CheckFlushSize() bool { return b.size >= b.optimalSize } -func getBufferByType(tp int, size datasize.ByteSize) Buffer { +func getBufferByType(tp int, size datasize.ByteSize, prevBuf Buffer) Buffer { switch tp { case SortableSliceBuffer: return NewSortableBuffer(size) @@ -389,6 +391,8 @@ func getBufferByType(tp int, size datasize.ByteSize) Buffer { return NewAppendBuffer(size) case SortableOldestAppearedBuffer: return NewOldestEntryBuffer(size) + case SortableMergeBuffer: + return NewLatestMergedEntryMergedBuffer(size, prevBuf.(*oldestMergedEntrySortableBuffer).merge) default: panic("unknown buffer type " + strconv.Itoa(tp)) } @@ -402,7 +406,112 @@ func getTypeByBuffer(b Buffer) int { return SortableAppendBuffer case *oldestEntrySortableBuffer: return SortableOldestAppearedBuffer + case *oldestMergedEntrySortableBuffer: + return SortableMergeBuffer default: panic(fmt.Sprintf("unknown buffer type: %T ", b)) } } + +func NewLatestMergedEntryMergedBuffer(bufferOptimalSize datasize.ByteSize, merger func([]byte, []byte) []byte) *oldestMergedEntrySortableBuffer { + if merger == nil { + panic("nil merge func") + } + return &oldestMergedEntrySortableBuffer{ + entries: make(map[string][]byte), + size: 0, + merge: merger, + optimalSize: int(bufferOptimalSize.Bytes()), + } +} + +type oldestMergedEntrySortableBuffer struct { + entries map[string][]byte + merge func([]byte, []byte) []byte + sortedBuf []sortableBufferEntry + size int + optimalSize int +} + +func (b *oldestMergedEntrySortableBuffer) Put(k, v []byte) { + prev, ok := b.entries[string(k)] + if ok { + b.size -= len(v) + // if we already had this entry, we are going to keep it and ignore new value + v = b.merge(prev, v) + b.size += len(v) + } else { + b.size += len(k) + len(v) + } + b.entries[string(k)] = common.Copy(v) +} + +func (b *oldestMergedEntrySortableBuffer) Size() int { return b.size } +func (b *oldestMergedEntrySortableBuffer) SizeLimit() int { return b.optimalSize } + +func (b *oldestMergedEntrySortableBuffer) Len() int { + return len(b.entries) +} + +func (b *oldestMergedEntrySortableBuffer) Sort() { + for k, v := range b.entries { + b.sortedBuf = append(b.sortedBuf, sortableBufferEntry{key: []byte(k), value: v}) + } + sort.Stable(b) +} + +func (b *oldestMergedEntrySortableBuffer) Less(i, j int) bool { + return bytes.Compare(b.sortedBuf[i].key, b.sortedBuf[j].key) < 0 +} + +func (b *oldestMergedEntrySortableBuffer) Swap(i, j int) { + b.sortedBuf[i], b.sortedBuf[j] = b.sortedBuf[j], b.sortedBuf[i] +} + +func (b *oldestMergedEntrySortableBuffer) Get(i int, keyBuf, valBuf []byte) ([]byte, []byte) { + keyBuf = append(keyBuf, b.sortedBuf[i].key...) + valBuf = append(valBuf, b.sortedBuf[i].value...) + return keyBuf, valBuf +} +func (b *oldestMergedEntrySortableBuffer) Reset() { + b.sortedBuf = nil + b.entries = make(map[string][]byte) + b.size = 0 +} +func (b *oldestMergedEntrySortableBuffer) Prealloc(predictKeysAmount, predictDataSize int) { + b.entries = make(map[string][]byte, predictKeysAmount) + b.sortedBuf = make([]sortableBufferEntry, 0, predictKeysAmount*2) +} + +func (b *oldestMergedEntrySortableBuffer) Write(w io.Writer) error { + var numBuf [binary.MaxVarintLen64]byte + entries := b.sortedBuf + for _, entry := range entries { + lk := int64(len(entry.key)) + if entry.key == nil { + lk = -1 + } + n := binary.PutVarint(numBuf[:], lk) + if _, err := w.Write(numBuf[:n]); err != nil { + return err + } + if _, err := w.Write(entry.key); err != nil { + return err + } + lv := int64(len(entry.value)) + if entry.value == nil { + lv = -1 + } + n = binary.PutVarint(numBuf[:], lv) + if _, err := w.Write(numBuf[:n]); err != nil { + return err + } + if _, err := w.Write(entry.value); err != nil { + return err + } + } + return nil +} +func (b *oldestMergedEntrySortableBuffer) CheckFlushSize() bool { + return b.size >= b.optimalSize +} diff --git a/erigon-lib/etl/collector.go b/erigon-lib/etl/collector.go index d72ddecd0c4..4a77ba2d368 100644 --- a/erigon-lib/etl/collector.go +++ b/erigon-lib/etl/collector.go @@ -117,7 +117,7 @@ func (c *Collector) flushBuffer(canStoreInRam bool) error { } else { fullBuf := c.buf prevLen, prevSize := fullBuf.Len(), fullBuf.SizeLimit() - c.buf = getBufferByType(c.bufType, datasize.ByteSize(c.buf.SizeLimit())) + c.buf = getBufferByType(c.bufType, datasize.ByteSize(c.buf.SizeLimit()), c.buf) doFsync := !c.autoClean /* is critical collector */ var err error @@ -149,6 +149,7 @@ func (c *Collector) Load(db kv.RwTx, toBucket string, loadFunc LoadFunc, args Tr if c.autoClean { defer c.Close() } + args.BufferType = c.bufType if !c.allFlushed { if e := c.flushBuffer(true); e != nil { @@ -181,7 +182,6 @@ func (c *Collector) Load(db kv.RwTx, toBucket string, loadFunc LoadFunc, args Tr defer logEvery.Stop() i := 0 - var prevK []byte loadNextFunc := func(_, k, v []byte) error { if i == 0 { isEndOfBucket := lastKey == nil || bytes.Compare(lastKey, k) == -1 @@ -189,18 +189,6 @@ func (c *Collector) Load(db kv.RwTx, toBucket string, loadFunc LoadFunc, args Tr } i++ - // SortableOldestAppearedBuffer must guarantee that only 1 oldest value of key will appear - // but because size of buffer is limited - each flushed file does guarantee "oldest appeared" - // property, but files may overlap. files are sorted, just skip repeated keys here - if c.bufType == SortableOldestAppearedBuffer { - if bytes.Equal(prevK, k) { - return nil - } else { - // Need to copy k because the underlying space will be re-used for the next key - prevK = common.Copy(k) - } - } - select { default: case <-logEvery.C: @@ -249,7 +237,7 @@ func (c *Collector) Load(db kv.RwTx, toBucket string, loadFunc LoadFunc, args Tr simpleLoad := func(k, v []byte) error { return loadFunc(k, v, currentTable, loadNextFunc) } - if err := mergeSortFiles(c.logPrefix, c.dataProviders, simpleLoad, args); err != nil { + if err := mergeSortFiles(c.logPrefix, c.dataProviders, simpleLoad, args, c.buf); err != nil { return fmt.Errorf("loadIntoTable %s: %w", toBucket, err) } //logger.Trace(fmt.Sprintf("[%s] ETL Load done", c.logPrefix), "bucket", bucket, "records", i) @@ -278,7 +266,7 @@ func (c *Collector) Close() { // for the next item, which is then added back to the heap. // The subsequent iterations pop the heap again and load up the provider associated with it to get the next element after processing LoadFunc. // this continues until all providers have reached their EOF. -func mergeSortFiles(logPrefix string, providers []dataProvider, loadFunc simpleLoadFunc, args TransformArgs) error { +func mergeSortFiles(logPrefix string, providers []dataProvider, loadFunc simpleLoadFunc, args TransformArgs, buf Buffer) (err error) { for _, provider := range providers { if err := provider.Wait(); err != nil { return err @@ -297,6 +285,8 @@ func mergeSortFiles(logPrefix string, providers []dataProvider, loadFunc simpleL } } + var prevK, prevV []byte + // Main loading loop for h.Len() > 0 { if err := common.Stopped(args.Quit); err != nil { @@ -305,16 +295,65 @@ func mergeSortFiles(logPrefix string, providers []dataProvider, loadFunc simpleL element := heapPop(h) provider := providers[element.TimeIdx] - err := loadFunc(element.Key, element.Value) - if err != nil { - return err + + // SortableOldestAppearedBuffer must guarantee that only 1 oldest value of key will appear + // but because size of buffer is limited - each flushed file does guarantee "oldest appeared" + // property, but files may overlap. files are sorted, just skip repeated keys here + if args.BufferType == SortableOldestAppearedBuffer { + if !bytes.Equal(prevK, element.Key) { + if err = loadFunc(element.Key, element.Value); err != nil { + return err + } + // Need to copy k because the underlying space will be re-used for the next key + prevK = common.Copy(element.Key) + } + } else if args.BufferType == SortableAppendBuffer { + if !bytes.Equal(prevK, element.Key) { + if prevK != nil { + if err = loadFunc(prevK, prevV); err != nil { + return err + } + } + // Need to copy k because the underlying space will be re-used for the next key + prevK = common.Copy(element.Key) + prevV = common.Copy(element.Value) + } else { + prevV = append(prevV, element.Value...) + } + } else if args.BufferType == SortableMergeBuffer { + if !bytes.Equal(prevK, element.Key) { + if prevK != nil { + if err = loadFunc(prevK, prevV); err != nil { + return err + } + } + // Need to copy k because the underlying space will be re-used for the next key + prevK = common.Copy(element.Key) + prevV = common.Copy(element.Value) + } else { + prevV = buf.(*oldestMergedEntrySortableBuffer).merge(prevV, element.Value) + } + } else { + if err = loadFunc(element.Key, element.Value); err != nil { + return err + } } + if element.Key, element.Value, err = provider.Next(element.Key[:0], element.Value[:0]); err == nil { heapPush(h, element) } else if !errors.Is(err, io.EOF) { return fmt.Errorf("%s: error while reading next element from disk: %w", logPrefix, err) } } + + if args.BufferType == SortableAppendBuffer { + if prevK != nil { + if err = loadFunc(prevK, prevV); err != nil { + return err + } + } + } + return nil } diff --git a/erigon-lib/etl/dataprovider.go b/erigon-lib/etl/dataprovider.go index a142f37f8c5..25387da38f1 100644 --- a/erigon-lib/etl/dataprovider.go +++ b/erigon-lib/etl/dataprovider.go @@ -22,6 +22,7 @@ import ( "fmt" "io" "os" + "path/filepath" "github.com/ledgerwatch/log/v3" "golang.org/x/sync/errgroup" @@ -71,10 +72,11 @@ func FlushToDisk(logPrefix string, b Buffer, tmpdir string, doFsync bool, lvl lo w := bufio.NewWriterSize(bufferFile, BufIOSize) defer w.Flush() //nolint:errcheck + _, fName := filepath.Split(bufferFile.Name()) if err = b.Write(w); err != nil { return fmt.Errorf("error writing entries to disk: %w", err) } - log.Log(lvl, fmt.Sprintf("[%s] Flushed buffer file", logPrefix), "name", bufferFile.Name()) + log.Log(lvl, fmt.Sprintf("[%s] Flushed buffer file", logPrefix), "name", fName) return nil }) diff --git a/erigon-lib/etl/etl.go b/erigon-lib/etl/etl.go index 942e115cb1e..9bac4418501 100644 --- a/erigon-lib/etl/etl.go +++ b/erigon-lib/etl/etl.go @@ -88,7 +88,7 @@ func Transform( if args.BufferSize > 0 { bufferSize = datasize.ByteSize(args.BufferSize) } - buffer := getBufferByType(args.BufferType, bufferSize) + buffer := getBufferByType(args.BufferType, bufferSize, nil) collector := NewCollector(logPrefix, tmpdir, buffer, logger) defer collector.Close() diff --git a/erigon-lib/etl/etl_test.go b/erigon-lib/etl/etl_test.go index 18ab3dc48e8..81b257df4b3 100644 --- a/erigon-lib/etl/etl_test.go +++ b/erigon-lib/etl/etl_test.go @@ -84,6 +84,23 @@ func TestEmptyValueIsNotANil(t *testing.T) { return nil }, TransformArgs{})) }) + t.Run("merge", func(t *testing.T) { + collector := NewCollector(t.Name(), "", NewLatestMergedEntryMergedBuffer(1, func(v1 []byte, v2 []byte) []byte { + return append(v1, v2...) + }), logger) + defer collector.Close() + require := require.New(t) + require.NoError(collector.Collect([]byte{1}, []byte{})) + require.NoError(collector.Collect([]byte{2}, nil)) + require.NoError(collector.Load(nil, "", func(k, v []byte, table CurrentTableReader, next LoadNextFunc) error { + if k[0] == 1 { + require.Equal([]byte{}, v) + } else { + require.Nil(v) + } + return nil + }, TransformArgs{})) + }) } func TestEmptyKeyValue(t *testing.T) { @@ -513,3 +530,118 @@ func TestReuseCollectorAfterLoad(t *testing.T) { require.NoError(t, err) require.Equal(t, 1, see) } + +func TestMerge(t *testing.T) { + collector := NewCollector(t.Name(), "", NewLatestMergedEntryMergedBuffer(4, func(v1 []byte, v2 []byte) []byte { + return append(v1, v2...) + }), log.New()) + defer collector.Close() + require := require.New(t) + require.NoError(collector.Collect([]byte{1}, []byte{1})) + require.NoError(collector.Collect([]byte{1}, []byte{2})) + require.NoError(collector.Collect([]byte{1}, []byte{3})) + require.NoError(collector.Collect([]byte{1}, []byte{4})) + require.NoError(collector.Collect([]byte{1}, []byte{5})) + require.NoError(collector.Collect([]byte{1}, []byte{6})) + require.NoError(collector.Collect([]byte{1}, []byte{7})) + require.NoError(collector.Collect([]byte{2}, []byte{10})) + require.NoError(collector.Collect([]byte{2}, []byte{20})) + require.NoError(collector.Collect([]byte{2}, []byte{30})) + require.NoError(collector.Collect([]byte{2}, []byte{40})) + require.NoError(collector.Collect([]byte{2}, []byte{50})) + require.NoError(collector.Collect([]byte{2}, []byte{})) + require.NoError(collector.Collect([]byte{2}, nil)) + require.NoError(collector.Collect([]byte{3}, nil)) + require.NoError(collector.Load(nil, "", func(k, v []byte, table CurrentTableReader, next LoadNextFunc) error { + if k[0] == 1 { + require.Equal([]byte{1, 2, 3, 4, 5, 6, 7}, v) + } else if k[0] == 2 { + require.Equal([]byte{10, 20, 30, 40, 50}, v) + } else { + require.Nil(v) + } + return nil + }, TransformArgs{})) +} + +func TestAppend(t *testing.T) { + // append buffer doesn't support nil values + collector := NewCollector(t.Name(), "", NewAppendBuffer(4), log.New()) + defer collector.Close() + require := require.New(t) + require.NoError(collector.Collect([]byte{1}, []byte{1})) + require.NoError(collector.Collect([]byte{1}, []byte{2})) + require.NoError(collector.Collect([]byte{1}, []byte{3})) + require.NoError(collector.Collect([]byte{1}, []byte{4})) + require.NoError(collector.Collect([]byte{1}, []byte{5})) + require.NoError(collector.Collect([]byte{1}, []byte{6})) + require.NoError(collector.Collect([]byte{1}, []byte{7})) + require.NoError(collector.Collect([]byte{2}, []byte{10})) + require.NoError(collector.Collect([]byte{2}, []byte{20})) + require.NoError(collector.Collect([]byte{2}, []byte{30})) + require.NoError(collector.Collect([]byte{2}, []byte{40})) + require.NoError(collector.Collect([]byte{2}, []byte{50})) + require.NoError(collector.Collect([]byte{2}, []byte{})) + require.NoError(collector.Collect([]byte{2}, nil)) + require.NoError(collector.Collect([]byte{3}, nil)) + require.NoError(collector.Load(nil, "", func(k, v []byte, table CurrentTableReader, next LoadNextFunc) error { + fmt.Printf("%x %x\n", k, v) + if k[0] == 1 { + require.Equal([]byte{1, 2, 3, 4, 5, 6, 7}, v) + } else if k[0] == 2 { + require.Equal([]byte{10, 20, 30, 40, 50}, v) + } else { + require.Nil(v) + } + return nil + }, TransformArgs{})) +} + +func TestOldest(t *testing.T) { + collector := NewCollector(t.Name(), "", NewOldestEntryBuffer(1), log.New()) + defer collector.Close() + require := require.New(t) + require.NoError(collector.Collect([]byte{1}, []byte{1})) + require.NoError(collector.Collect([]byte{1}, []byte{2})) + require.NoError(collector.Collect([]byte{1}, []byte{3})) + require.NoError(collector.Collect([]byte{1}, []byte{4})) + require.NoError(collector.Collect([]byte{1}, []byte{5})) + require.NoError(collector.Collect([]byte{1}, []byte{6})) + require.NoError(collector.Collect([]byte{1}, []byte{7})) + require.NoError(collector.Collect([]byte{2}, nil)) + require.NoError(collector.Load(nil, "", func(k, v []byte, table CurrentTableReader, next LoadNextFunc) error { + if k[0] == 1 { + require.Equal([]byte{1}, v) + } else { + require.Nil(v) + } + return nil + }, TransformArgs{})) +} + +func TestSortable(t *testing.T) { + collector := NewCollector(t.Name(), "", NewSortableBuffer(1), log.New()) + defer collector.Close() + require := require.New(t) + require.NoError(collector.Collect([]byte{1}, []byte{1})) + require.NoError(collector.Collect([]byte{1}, []byte{2})) + require.NoError(collector.Collect([]byte{1}, []byte{3})) + require.NoError(collector.Collect([]byte{1}, []byte{4})) + require.NoError(collector.Collect([]byte{1}, []byte{5})) + require.NoError(collector.Collect([]byte{1}, []byte{6})) + require.NoError(collector.Collect([]byte{1}, []byte{7})) + require.NoError(collector.Collect([]byte{2}, []byte{1})) + require.NoError(collector.Collect([]byte{2}, []byte{20})) + require.NoError(collector.Collect([]byte{2}, nil)) + + keys, vals := [][]byte{}, [][]byte{} + require.NoError(collector.Load(nil, "", func(k, v []byte, table CurrentTableReader, next LoadNextFunc) error { + keys = append(keys, k) + vals = append(vals, v) + return nil + }, TransformArgs{})) + + require.Equal([][]byte{{1}, {1}, {1}, {1}, {1}, {1}, {1}, {2}, {2}, {2}}, keys) + require.Equal([][]byte{{1}, {2}, {3}, {4}, {5}, {6}, {7}, {1}, {20}, nil}, vals) + +} diff --git a/erigon-lib/go.mod b/erigon-lib/go.mod index 3cb99621a0f..21986c37eee 100644 --- a/erigon-lib/go.mod +++ b/erigon-lib/go.mod @@ -1,10 +1,11 @@ module github.com/ledgerwatch/erigon-lib -go 1.19 +go 1.20 require ( - github.com/erigontech/mdbx-go v0.27.17 - github.com/ledgerwatch/interfaces v0.0.0-20230929215128-3300a167cce0 + github.com/erigontech/mdbx-go v0.35.2-0.20231101074031-9f999220e9ed + github.com/ledgerwatch/erigon-snapshot v1.3.1-0.20231102060711-19219b948f46 + github.com/ledgerwatch/interfaces v0.0.0-20231031050643-c86352e41520 github.com/ledgerwatch/log/v3 v3.9.0 github.com/ledgerwatch/secp256k1 v1.0.0 ) @@ -16,8 +17,13 @@ require ( github.com/anacrolix/go-libutp v1.3.1 github.com/anacrolix/log v0.14.3-0.20230823030427-4b296d71a6b4 github.com/anacrolix/torrent v1.52.6-0.20230926121951-11833b45cfbe + github.com/aws/aws-sdk-go-v2 v1.21.2 + github.com/aws/aws-sdk-go-v2/config v1.19.0 + github.com/aws/aws-sdk-go-v2/credentials v1.13.43 + github.com/aws/aws-sdk-go-v2/service/s3 v1.40.2 github.com/c2h5oh/datasize v0.0.0-20220606134207-859f65c6625b - github.com/crate-crypto/go-kzg-4844 v0.3.0 + github.com/containerd/cgroups/v3 v3.0.2 + github.com/crate-crypto/go-kzg-4844 v0.7.0 github.com/deckarep/golang-set/v2 v2.3.1 github.com/edsrzf/mmap-go v1.1.0 github.com/go-stack/stack v1.8.1 @@ -26,9 +32,12 @@ require ( github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 github.com/hashicorp/golang-lru/v2 v2.0.6 github.com/holiman/uint256 v1.2.3 - github.com/matryer/moq v0.3.2 + github.com/matryer/moq v0.3.3 github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 github.com/pelletier/go-toml/v2 v2.1.0 + github.com/prometheus/client_golang v1.17.0 + github.com/prometheus/client_model v0.5.0 + github.com/prometheus/common v0.44.0 github.com/quasilyte/go-ruleguard/dsl v0.3.22 github.com/spaolacci/murmur3 v1.1.0 github.com/stretchr/testify v1.8.4 @@ -38,7 +47,7 @@ require ( golang.org/x/sync v0.4.0 golang.org/x/sys v0.13.0 golang.org/x/time v0.3.0 - google.golang.org/grpc v1.58.3 + google.golang.org/grpc v1.59.0 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 google.golang.org/protobuf v1.31.0 ) @@ -58,26 +67,48 @@ require ( github.com/anacrolix/sync v0.4.0 // indirect github.com/anacrolix/upnp v0.1.3-0.20220123035249-922794e51c96 // indirect github.com/anacrolix/utp v0.1.0 // indirect + github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.14 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.13 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.43 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.37 // indirect + github.com/aws/aws-sdk-go-v2/internal/ini v1.3.45 // indirect + github.com/aws/aws-sdk-go-v2/internal/v4a v1.1.6 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.15 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.38 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.37 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.15.6 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.15.2 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.17.3 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.23.2 // indirect + github.com/aws/smithy-go v1.15.0 // indirect github.com/bahlo/generic-list-go v0.2.0 // indirect github.com/benbjohnson/immutable v0.4.1-0.20221220213129-8932b999621d // indirect + github.com/beorn7/perks v1.0.1 // indirect github.com/bits-and-blooms/bitset v1.7.0 // indirect github.com/bradfitz/iter v0.0.0-20191230175014-e8f45d346db8 // indirect + github.com/cespare/xxhash/v2 v2.2.0 // indirect + github.com/cilium/ebpf v0.9.1 // indirect github.com/consensys/bavard v0.1.13 // indirect github.com/consensys/gnark-crypto v0.12.0 // indirect + github.com/coreos/go-systemd/v22 v22.3.2 // indirect github.com/davecgh/go-spew v1.1.1 // indirect + github.com/docker/go-units v0.4.0 // indirect github.com/dustin/go-humanize v1.0.1 // indirect github.com/go-llsqlite/adapter v0.0.0-20230912124304-94ed0e573c23 // indirect github.com/go-llsqlite/crawshaw v0.0.0-20230910110433-7e901377eb6c // indirect github.com/go-logr/logr v1.2.3 // indirect github.com/go-logr/stdr v1.2.2 // indirect + github.com/godbus/dbus/v5 v5.0.4 // indirect github.com/golang/protobuf v1.5.3 // indirect github.com/google/uuid v1.3.1 // indirect github.com/gorilla/websocket v1.5.0 // indirect github.com/huandu/xstrings v1.4.0 // indirect github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-isatty v0.0.19 // indirect + github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect github.com/mmcloughlin/addchain v0.4.0 // indirect github.com/mschoch/smat v0.2.0 // indirect + github.com/opencontainers/runtime-spec v1.0.2 // indirect github.com/pion/datachannel v1.5.2 // indirect github.com/pion/dtls/v2 v2.2.4 // indirect github.com/pion/ice/v2 v2.2.6 // indirect @@ -98,8 +129,10 @@ require ( github.com/pion/webrtc/v3 v3.1.42 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/prometheus/procfs v0.11.1 // indirect github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect github.com/rs/dnscache v0.0.0-20211102005908-e0241e321417 // indirect + github.com/sirupsen/logrus v1.9.0 // indirect github.com/valyala/fastrand v1.1.0 // indirect github.com/valyala/histogram v1.2.0 // indirect go.etcd.io/bbolt v1.3.6 // indirect @@ -109,7 +142,7 @@ require ( golang.org/x/net v0.17.0 // indirect golang.org/x/text v0.13.0 // indirect golang.org/x/tools v0.14.0 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d // indirect gopkg.in/yaml.v3 v3.0.1 // indirect modernc.org/libc v1.24.1 // indirect modernc.org/mathutil v1.6.0 // indirect @@ -118,3 +151,5 @@ require ( rsc.io/tmplfunc v0.0.3 // indirect zombiezen.com/go/sqlite v0.13.1 // indirect ) + +replace github.com/VictoriaMetrics/metrics => github.com/ledgerwatch/victoria-metrics v0.0.4 diff --git a/erigon-lib/go.sum b/erigon-lib/go.sum index 66779c0bcaf..03c789a7c1c 100644 --- a/erigon-lib/go.sum +++ b/erigon-lib/go.sum @@ -12,8 +12,6 @@ github.com/RoaringBitmap/roaring v1.2.3 h1:yqreLINqIrX22ErkKI0vY47/ivtJr6n+kMhVO github.com/RoaringBitmap/roaring v1.2.3/go.mod h1:plvDsJQpxOC5bw8LRteu/MLWHsHez/3y6cubLI4/1yE= github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo= github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= -github.com/VictoriaMetrics/metrics v1.23.1 h1:/j8DzeJBxSpL2qSIdqnRFLvQQhbJyJbbEi22yMm7oL0= -github.com/VictoriaMetrics/metrics v1.23.1/go.mod h1:rAr/llLpEnAdTehiNlUxKgnjcOuROSzpw0GvjpEbvFc= github.com/ajwerner/btree v0.0.0-20211221152037-f427b3e689c0 h1:byYvvbfSo3+9efR4IeReh77gVs4PnNDR3AMOE9NJ7a0= github.com/ajwerner/btree v0.0.0-20211221152037-f427b3e689c0/go.mod h1:q37NoqncT41qKc048STsifIt69LfUJ8SrWWcz/yam5k= github.com/alecthomas/assert/v2 v2.0.0-alpha3 h1:pcHeMvQ3OMstAWgaeaXIAL8uzB9xMm2zlxt+/4ml8lk= @@ -80,6 +78,42 @@ github.com/anacrolix/upnp v0.1.3-0.20220123035249-922794e51c96/go.mod h1:Wa6n8cY github.com/anacrolix/utp v0.1.0 h1:FOpQOmIwYsnENnz7tAGohA+r6iXpRjrq8ssKSre2Cp4= github.com/anacrolix/utp v0.1.0/go.mod h1:MDwc+vsGEq7RMw6lr2GKOEqjWny5hO5OZXRVNaBJ2Dk= github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= +github.com/aws/aws-sdk-go-v2 v1.21.2 h1:+LXZ0sgo8quN9UOKXXzAWRT3FWd4NxeXWOZom9pE7GA= +github.com/aws/aws-sdk-go-v2 v1.21.2/go.mod h1:ErQhvNuEMhJjweavOYhxVkn2RUx7kQXVATHrjKtxIpM= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.14 h1:Sc82v7tDQ/vdU1WtuSyzZ1I7y/68j//HJ6uozND1IDs= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.14/go.mod h1:9NCTOURS8OpxvoAVHq79LK81/zC78hfRWFn+aL0SPcY= +github.com/aws/aws-sdk-go-v2/config v1.19.0 h1:AdzDvwH6dWuVARCl3RTLGRc4Ogy+N7yLFxVxXe1ClQ0= +github.com/aws/aws-sdk-go-v2/config v1.19.0/go.mod h1:ZwDUgFnQgsazQTnWfeLWk5GjeqTQTL8lMkoE1UXzxdE= +github.com/aws/aws-sdk-go-v2/credentials v1.13.43 h1:LU8vo40zBlo3R7bAvBVy/ku4nxGEyZe9N8MqAeFTzF8= +github.com/aws/aws-sdk-go-v2/credentials v1.13.43/go.mod h1:zWJBz1Yf1ZtX5NGax9ZdNjhhI4rgjfgsyk6vTY1yfVg= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.13 h1:PIktER+hwIG286DqXyvVENjgLTAwGgoeriLDD5C+YlQ= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.13/go.mod h1:f/Ib/qYjhV2/qdsf79H3QP/eRE4AkVyEf6sk7XfZ1tg= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.43 h1:nFBQlGtkbPzp/NjZLuFxRqmT91rLJkgvsEQs68h962Y= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.43/go.mod h1:auo+PiyLl0n1l8A0e8RIeR8tOzYPfZZH/JNlrJ8igTQ= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.37 h1:JRVhO25+r3ar2mKGP7E0LDl8K9/G36gjlqca5iQbaqc= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.37/go.mod h1:Qe+2KtKml+FEsQF/DHmDV+xjtche/hwoF75EG4UlHW8= +github.com/aws/aws-sdk-go-v2/internal/ini v1.3.45 h1:hze8YsjSh8Wl1rYa1CJpRmXP21BvOBuc76YhW0HsuQ4= +github.com/aws/aws-sdk-go-v2/internal/ini v1.3.45/go.mod h1:lD5M20o09/LCuQ2mE62Mb/iSdSlCNuj6H5ci7tW7OsE= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.1.6 h1:wmGLw2i8ZTlHLw7a9ULGfQbuccw8uIiNr6sol5bFzc8= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.1.6/go.mod h1:Q0Hq2X/NuL7z8b1Dww8rmOFl+jzusKEcyvkKspwdpyc= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.15 h1:7R8uRYyXzdD71KWVCL78lJZltah6VVznXBazvKjfH58= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.15/go.mod h1:26SQUPcTNgV1Tapwdt4a1rOsYRsnBsJHLMPoxK2b0d8= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.38 h1:skaFGzv+3kA+v2BPKhuekeb1Hbb105+44r8ASC+q5SE= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.38/go.mod h1:epIZoRSSbRIwLPJU5F+OldHhwZPBdpDeQkRdCeY3+00= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.37 h1:WWZA/I2K4ptBS1kg0kV1JbBtG/umed0vwHRrmcr9z7k= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.37/go.mod h1:vBmDnwWXWxNPFRMmG2m/3MKOe+xEcMDo1tanpaWCcck= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.15.6 h1:9ulSU5ClouoPIYhDQdg9tpl83d5Yb91PXTKK+17q+ow= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.15.6/go.mod h1:lnc2taBsR9nTlz9meD+lhFZZ9EWY712QHrRflWpTcOA= +github.com/aws/aws-sdk-go-v2/service/s3 v1.40.2 h1:Ll5/YVCOzRB+gxPqs2uD0R7/MyATC0w85626glSKmp4= +github.com/aws/aws-sdk-go-v2/service/s3 v1.40.2/go.mod h1:Zjfqt7KhQK+PO1bbOsFNzKgaq7TcxzmEoDWN8lM0qzQ= +github.com/aws/aws-sdk-go-v2/service/sso v1.15.2 h1:JuPGc7IkOP4AaqcZSIcyqLpFSqBWK32rM9+a1g6u73k= +github.com/aws/aws-sdk-go-v2/service/sso v1.15.2/go.mod h1:gsL4keucRCgW+xA85ALBpRFfdSLH4kHOVSnLMSuBECo= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.17.3 h1:HFiiRkf1SdaAmV3/BHOFZ9DjFynPHj8G/UIO1lQS+fk= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.17.3/go.mod h1:a7bHA82fyUXOm+ZSWKU6PIoBxrjSprdLoM8xPYvzYVg= +github.com/aws/aws-sdk-go-v2/service/sts v1.23.2 h1:0BkLfgeDjfZnZ+MhB3ONb01u9pwFYTCZVhlsSSBvlbU= +github.com/aws/aws-sdk-go-v2/service/sts v1.23.2/go.mod h1:Eows6e1uQEsc4ZaHANmsPRzAKcVDrcmjjWiih2+HUUQ= +github.com/aws/smithy-go v1.15.0 h1:PS/durmlzvAFpQHDs4wi4sNNP9ExsqZh6IlfdHXgKK8= +github.com/aws/smithy-go v1.15.0/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= github.com/bahlo/generic-list-go v0.2.0 h1:5sz/EEAK+ls5wF+NeqDpk5+iNdMDXrh3z3nPnH1Wvgk= github.com/bahlo/generic-list-go v0.2.0/go.mod h1:2KvAjgMlE5NNynlg/5iLrrCCZ2+5xWbdbCW3pNTGyYg= github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= @@ -88,6 +122,7 @@ github.com/benbjohnson/immutable v0.4.1-0.20221220213129-8932b999621d h1:2qVb9bs github.com/benbjohnson/immutable v0.4.1-0.20221220213129-8932b999621d/go.mod h1:iAr8OjJGLnLmVUr9MZ/rz4PWUy6Ouc2JLYuMArmvAJM= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= +github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bits-and-blooms/bitset v1.2.0/go.mod h1:gIdJ4wp64HaoK2YrL1Q5/N7Y16edYb8uY+O0FJTyyDA= github.com/bits-and-blooms/bitset v1.7.0 h1:YjAGVd3XmtK9ktAbX8Zg2g2PwLIMjGREZJHlV4j7NEo= @@ -100,20 +135,30 @@ github.com/c2h5oh/datasize v0.0.0-20220606134207-859f65c6625b h1:6+ZFm0flnudZzdS github.com/c2h5oh/datasize v0.0.0-20220606134207-859f65c6625b/go.mod h1:S/7n9copUssQ56c7aAgHqftWO4LTf4xY6CGWt8Bc+3M= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= +github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cilium/ebpf v0.9.1 h1:64sn2K3UKw8NbP/blsixRpF3nXuyhz/VjRlRzvlBRu4= +github.com/cilium/ebpf v0.9.1/go.mod h1:+OhNOIXx/Fnu1IE8bJz2dzOA+VSfyTfdNUVdlQnxUFY= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= github.com/consensys/bavard v0.1.13 h1:oLhMLOFGTLdlda/kma4VOJazblc7IM5y5QPd2A/YjhQ= github.com/consensys/bavard v0.1.13/go.mod h1:9ItSMtA/dXMAiL7BG6bqW2m3NdSEObYWoH223nGHukI= github.com/consensys/gnark-crypto v0.12.0 h1:1OnSpOykNkUIBIBJKdhwy2p0JlW5o+Az02ICzZmvvdg= github.com/consensys/gnark-crypto v0.12.0/go.mod h1:v2Gy7L/4ZRosZ7Ivs+9SfUDr0f5UlG+EM5t7MPHiLuY= -github.com/crate-crypto/go-kzg-4844 v0.3.0 h1:UBlWE0CgyFqqzTI+IFyCzA7A3Zw4iip6uzRv5NIXG0A= -github.com/crate-crypto/go-kzg-4844 v0.3.0/go.mod h1:SBP7ikXEgDnUPONgm33HtuDZEDtWa3L4QtN1ocJSEQ4= +github.com/containerd/cgroups/v3 v3.0.2 h1:f5WFqIVSgo5IZmtTT3qVBo6TzI1ON6sycSBKkymb9L0= +github.com/containerd/cgroups/v3 v3.0.2/go.mod h1:JUgITrzdFqp42uI2ryGA+ge0ap/nxzYgkGmIcetmErE= +github.com/coreos/go-systemd/v22 v22.3.2 h1:D9/bQk5vlXQFZ6Kwuu6zaiXJ9oTPe68++AzAJc1DzSI= +github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= +github.com/crate-crypto/go-kzg-4844 v0.7.0 h1:C0vgZRk4q4EZ/JgPfzuSoxdCq3C3mOZMBShovmncxvA= +github.com/crate-crypto/go-kzg-4844 v0.7.0/go.mod h1:1kMhvPgI0Ky3yIa+9lFySEBUBXkYxeOi8ZF1sYioxhc= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/deckarep/golang-set/v2 v2.3.1 h1:vjmkvJt/IV27WXPyYQpAh4bRyWJc5Y435D17XQ9QU5A= github.com/deckarep/golang-set/v2 v2.3.1/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= +github.com/docker/go-units v0.4.0 h1:3uh0PgVws3nIA0Q+MwDC8yjEPf9zjRfZZWXZYDct3Tw= +github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= github.com/dustin/go-humanize v0.0.0-20180421182945-02af3965c54e/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= @@ -128,8 +173,8 @@ github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymF github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/erigontech/mdbx-go v0.27.17 h1:+LOuGmdrD74psBVHDaS3cFXzI9tTSfLcUvOUtMwX2Ok= -github.com/erigontech/mdbx-go v0.27.17/go.mod h1:FAMxbOgqOnRDx51j8HjuJZIgznbDwjX7LItd+/UWyA4= +github.com/erigontech/mdbx-go v0.35.2-0.20231101074031-9f999220e9ed h1:i1xZSrLxifCa0nabPeTxma9/3hqPSRmvqwWqad8rLVM= +github.com/erigontech/mdbx-go v0.35.2-0.20231101074031-9f999220e9ed/go.mod h1:FAMxbOgqOnRDx51j8HjuJZIgznbDwjX7LItd+/UWyA4= github.com/frankban/quicktest v1.9.0/go.mod h1:ui7WezCLWMWxVWr1GETZY3smRy0G4KWq9vcPtJmFl7Y= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= @@ -159,6 +204,8 @@ github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/me github.com/go-stack/stack v1.8.1 h1:ntEHSVwIt7PNXNpgPmVfMrNhLtgjlmnZha2kOpuRiDw= github.com/go-stack/stack v1.8.1/go.mod h1:dcoOX6HbPZSZptuspn9bctJ+N/CnF5gGygcUP3XYfe4= github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= +github.com/godbus/dbus/v5 v5.0.4 h1:9349emZab16e7zQvpmsbtjc18ykshndd8y2PG3sgJbA= +github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gofrs/flock v0.8.1 h1:+gYjHKf32LDeiEEFhQaotPbLuUXjY5ZqxKgXy7n59aw= github.com/gofrs/flock v0.8.1/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= @@ -193,6 +240,7 @@ github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMyw github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/subcommands v1.2.0/go.mod h1:ZjhPrFU+Olkh9WazFPsl27BQ4UPiG37m3yTrtFlrHVk= @@ -223,6 +271,8 @@ github.com/huandu/xstrings v1.3.1/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq github.com/huandu/xstrings v1.3.2/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= github.com/huandu/xstrings v1.4.0 h1:D17IlohoQq4UcpqD7fDk80P7l+lwAmlFaBHgOipl2FU= github.com/huandu/xstrings v1.4.0/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= +github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= +github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/jtolds/gls v4.2.1+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= @@ -241,20 +291,26 @@ github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/leanovate/gopter v0.2.9 h1:fQjYxZaynp97ozCzfOyOuAGOU4aU/z37zf/tOujFk7c= -github.com/ledgerwatch/interfaces v0.0.0-20230929215128-3300a167cce0 h1:pCLKf3lanroMo1SpA/idi5RyGOIBwvwVRLNwV0suHQU= -github.com/ledgerwatch/interfaces v0.0.0-20230929215128-3300a167cce0/go.mod h1:ugQv1QllJzBny3cKZKxUrSnykkjkBgm27eQM6dnGAcc= +github.com/ledgerwatch/erigon-snapshot v1.3.1-0.20231102060711-19219b948f46 h1:yt3/AcefMQOzY/P05jyeaKpqMQvrCbL6OJWALsjKp5U= +github.com/ledgerwatch/erigon-snapshot v1.3.1-0.20231102060711-19219b948f46/go.mod h1:3AuPxZc85jkehh/HA9h8gabv5MSi3kb/ddtzBsTVJFo= +github.com/ledgerwatch/interfaces v0.0.0-20231031050643-c86352e41520 h1:j/PRJWbPrbk8wpVjU77SWS8xJ/N+dcxPs1relNSolUs= +github.com/ledgerwatch/interfaces v0.0.0-20231031050643-c86352e41520/go.mod h1:ugQv1QllJzBny3cKZKxUrSnykkjkBgm27eQM6dnGAcc= github.com/ledgerwatch/log/v3 v3.9.0 h1:iDwrXe0PVwBC68Dd94YSsHbMgQ3ufsgjzXtFNFVZFRk= github.com/ledgerwatch/log/v3 v3.9.0/go.mod h1:EiAY6upmI/6LkNhOVxb4eVsmsP11HZCnZ3PlJMjYiqE= github.com/ledgerwatch/secp256k1 v1.0.0 h1:Usvz87YoTG0uePIV8woOof5cQnLXGYa162rFf3YnwaQ= github.com/ledgerwatch/secp256k1 v1.0.0/go.mod h1:SPmqJFciiF/Q0mPt2jVs2dTr/1TZBTIA+kPMmKgBAak= -github.com/matryer/moq v0.3.2 h1:z7oltmpTxiQ9nKNg0Jc7z45TM+eO7OhCVohxRxwaudM= -github.com/matryer/moq v0.3.2/go.mod h1:RJ75ZZZD71hejp39j4crZLsEDszGk6iH4v4YsWFKH4s= +github.com/ledgerwatch/victoria-metrics v0.0.4 h1:S9QWU1giEHi4MgZWGRllDlqPKWIm5oZAiDcIITDOM0w= +github.com/ledgerwatch/victoria-metrics v0.0.4/go.mod h1:sQqXMfpfwYTLQVw/FsaKAwnOp6UhVkmaYSpl9gZ/K6w= +github.com/matryer/moq v0.3.3 h1:pScMH9VyrdT4S93yiLpVyU8rCDqGQr24uOyBxmktG5Q= +github.com/matryer/moq v0.3.3/go.mod h1:RJ75ZZZD71hejp39j4crZLsEDszGk6iH4v4YsWFKH4s= github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= +github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= +github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= github.com/mmcloughlin/addchain v0.4.0 h1:SobOdjm2xLj1KkXN5/n0xTIWyZA2+s99UCY1iPfkHRY= github.com/mmcloughlin/addchain v0.4.0/go.mod h1:A86O+tHqZLMNO4w6ZZ4FlVQEadcoqkyU72HC5wJ4RlU= github.com/mmcloughlin/profile v0.1.1/go.mod h1:IhHD7q1ooxgwTgjxQYkACGA77oFTDdFVejUS1/tS/qU= @@ -277,6 +333,8 @@ github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1Cpa github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY= +github.com/opencontainers/runtime-spec v1.0.2 h1:UfAcuLBJB9Coz72x1hgl8O5RVzTdNiaglX6v2DM6FI0= +github.com/opencontainers/runtime-spec v1.0.2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw= github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 h1:onHthvaw9LFnH4t2DcNVpwGmV9E1BkGknEliJkfwQj0= @@ -339,19 +397,27 @@ github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXP github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod h1:p2iRAGwDERtqlqzRXnrOVns+ignqQo//hLXqYxZYVNs= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.5.1/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= +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.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +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.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= +github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY= +github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= github.com/prometheus/procfs v0.0.11/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= +github.com/prometheus/procfs v0.11.1 h1:xRC8Iq1yyca5ypa9n1EZnWZkt7dwcoRPQwX/5gwaUuI= +github.com/prometheus/procfs v0.11.1/go.mod h1:eesXgaPo1q7lBpVMoMy0ZOFTth9hBn4W/y0/p/ScXhY= github.com/quasilyte/go-ruleguard/dsl v0.3.22 h1:wd8zkOhSNr+I+8Qeciml08ivDt1pSXe60+5DqOpCjPE= github.com/quasilyte/go-ruleguard/dsl v0.3.22/go.mod h1:KeCP03KrjuSO0H1kTuZQCWlQPulDV6YMIXmpQss17rU= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= @@ -359,7 +425,7 @@ github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94 github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE= -github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= +github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= github.com/rs/dnscache v0.0.0-20211102005908-e0241e321417 h1:Lt9DzQALzHoDwMBGJ6v8ObDPR0dzr2a6sXTB1Fq7IHs= github.com/rs/dnscache v0.0.0-20211102005908-e0241e321417/go.mod h1:qe5TWALJ8/a1Lqznoc5BDHpYX/8HU60Hm2AwRmqzxqA= github.com/ryszard/goskiplist v0.0.0-20150312221310-2dfbae5fcf46 h1:GHRpF1pTW19a8tTFrMLUcfWwyC0pnifVo2ClaLq+hP8= @@ -367,6 +433,8 @@ github.com/ryszard/goskiplist v0.0.0-20150312221310-2dfbae5fcf46/go.mod h1:uAQ5P github.com/sclevine/agouti v3.0.0+incompatible/go.mod h1:b4WX9W9L1sfQKXeJf1mUTLZKJ48R1S7H23Ji7oFO5Bw= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= +github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= +github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/assertions v0.0.0-20190215210624-980c5ac6f3ac/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/goconvey v0.0.0-20181108003508-044398e4856c/go.mod h1:XDJAKZRPZ1CvBcN2aX5YOUTYGHki24fSF0Iv48Ibg0s= @@ -414,6 +482,7 @@ go.opentelemetry.io/otel/trace v1.8.0 h1:cSy0DF9eGI5WIfNwZ1q2iUyGj00tGzP24dE1lOl go.opentelemetry.io/otel/trace v1.8.0/go.mod h1:0Bt3PXY8w+3pheS3hQUt+wow8b1ojPaTBoTCh2zIFI4= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A= +go.uber.org/goleak v1.1.12 h1:gZAh5/EyT/HQwlpkCy6wTpqfH9H8Lz8zbm3dZh+OyzA= go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= go.uber.org/zap v1.18.1/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= @@ -508,6 +577,7 @@ golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220608164250-635b8c9b7f68/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -562,8 +632,8 @@ google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRn google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20200423170343-7949de9c1215/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -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/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d h1:uvYuEyMHKNt+lT4K3bN6fGswmK8qSvcreM3BwjDh+y4= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d/go.mod h1:+Bk1OCOj40wS2hwAMA+aCW9ypzm63QTBBHp6lQ3p+9M= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= @@ -571,8 +641,8 @@ google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyac google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= -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.3.0 h1:rNBFJjBCOgVr9pWD7rs/knKL4FRTKgpZmsRfV214zcA= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0/go.mod h1:Dk1tviKTvMCz5tvh7t+fh94dhmQVHuCt2OzJB3CTW9Y= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= diff --git a/erigon-lib/gointerfaces/downloader/downloader.pb.go b/erigon-lib/gointerfaces/downloader/downloader.pb.go index 773282e315b..e7dfe2f04cd 100644 --- a/erigon-lib/gointerfaces/downloader/downloader.pb.go +++ b/erigon-lib/gointerfaces/downloader/downloader.pb.go @@ -127,6 +127,54 @@ func (x *DownloadRequest) GetItems() []*DownloadItem { return nil } +// DeleteRequest: stop seeding, delete file, delete .torrent +type DeleteRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Paths []string `protobuf:"bytes,1,rep,name=paths,proto3" json:"paths,omitempty"` +} + +func (x *DeleteRequest) Reset() { + *x = DeleteRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_downloader_downloader_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteRequest) ProtoMessage() {} + +func (x *DeleteRequest) ProtoReflect() protoreflect.Message { + mi := &file_downloader_downloader_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteRequest.ProtoReflect.Descriptor instead. +func (*DeleteRequest) Descriptor() ([]byte, []int) { + return file_downloader_downloader_proto_rawDescGZIP(), []int{2} +} + +func (x *DeleteRequest) GetPaths() []string { + if x != nil { + return x.Paths + } + return nil +} + type VerifyRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -136,7 +184,7 @@ type VerifyRequest struct { func (x *VerifyRequest) Reset() { *x = VerifyRequest{} if protoimpl.UnsafeEnabled { - mi := &file_downloader_downloader_proto_msgTypes[2] + mi := &file_downloader_downloader_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -149,7 +197,7 @@ func (x *VerifyRequest) String() string { func (*VerifyRequest) ProtoMessage() {} func (x *VerifyRequest) ProtoReflect() protoreflect.Message { - mi := &file_downloader_downloader_proto_msgTypes[2] + mi := &file_downloader_downloader_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -162,7 +210,7 @@ func (x *VerifyRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use VerifyRequest.ProtoReflect.Descriptor instead. func (*VerifyRequest) Descriptor() ([]byte, []int) { - return file_downloader_downloader_proto_rawDescGZIP(), []int{2} + return file_downloader_downloader_proto_rawDescGZIP(), []int{3} } type StatsRequest struct { @@ -174,7 +222,7 @@ type StatsRequest struct { func (x *StatsRequest) Reset() { *x = StatsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_downloader_downloader_proto_msgTypes[3] + mi := &file_downloader_downloader_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -187,7 +235,7 @@ func (x *StatsRequest) String() string { func (*StatsRequest) ProtoMessage() {} func (x *StatsRequest) ProtoReflect() protoreflect.Message { - mi := &file_downloader_downloader_proto_msgTypes[3] + mi := &file_downloader_downloader_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -200,7 +248,7 @@ func (x *StatsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use StatsRequest.ProtoReflect.Descriptor instead. func (*StatsRequest) Descriptor() ([]byte, []int) { - return file_downloader_downloader_proto_rawDescGZIP(), []int{3} + return file_downloader_downloader_proto_rawDescGZIP(), []int{4} } type StatsReply struct { @@ -228,7 +276,7 @@ type StatsReply struct { func (x *StatsReply) Reset() { *x = StatsReply{} if protoimpl.UnsafeEnabled { - mi := &file_downloader_downloader_proto_msgTypes[4] + mi := &file_downloader_downloader_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -241,7 +289,7 @@ func (x *StatsReply) String() string { func (*StatsReply) ProtoMessage() {} func (x *StatsReply) ProtoReflect() protoreflect.Message { - mi := &file_downloader_downloader_proto_msgTypes[4] + mi := &file_downloader_downloader_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -254,7 +302,7 @@ func (x *StatsReply) ProtoReflect() protoreflect.Message { // Deprecated: Use StatsReply.ProtoReflect.Descriptor instead. func (*StatsReply) Descriptor() ([]byte, []int) { - return file_downloader_downloader_proto_rawDescGZIP(), []int{4} + return file_downloader_downloader_proto_rawDescGZIP(), []int{5} } func (x *StatsReply) GetMetadataReady() int32 { @@ -345,47 +393,53 @@ var file_downloader_downloader_proto_rawDesc = []byte{ 0x12, 0x2e, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x72, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, - 0x22, 0x0f, 0x0a, 0x0d, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x22, 0x0e, 0x0a, 0x0c, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x22, 0xee, 0x02, 0x0a, 0x0a, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, - 0x12, 0x25, 0x0a, 0x0e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x72, 0x65, 0x61, - 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x52, 0x65, 0x61, 0x64, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x69, 0x6c, 0x65, 0x73, - 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, - 0x6c, 0x65, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x65, 0x65, 0x72, - 0x73, 0x5f, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, - 0x70, 0x65, 0x65, 0x72, 0x73, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x63, - 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x70, - 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x63, 0x6f, 0x6d, - 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, - 0x73, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, - 0x73, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x70, - 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x62, 0x79, 0x74, - 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x62, - 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x0a, 0x62, 0x79, 0x74, 0x65, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, - 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x0a, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x61, 0x74, 0x65, 0x12, 0x23, 0x0a, - 0x0d, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0b, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x61, - 0x74, 0x65, 0x32, 0xcb, 0x01, 0x0a, 0x0a, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x65, - 0x72, 0x12, 0x41, 0x0a, 0x08, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x1b, 0x2e, - 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x72, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, - 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x22, 0x00, 0x12, 0x3d, 0x0a, 0x06, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x19, - 0x2e, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x72, 0x2e, 0x56, 0x65, 0x72, 0x69, - 0x66, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x22, 0x00, 0x12, 0x3b, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x18, 0x2e, 0x64, + 0x22, 0x25, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x61, 0x74, 0x68, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x05, 0x70, 0x61, 0x74, 0x68, 0x73, 0x22, 0x0f, 0x0a, 0x0d, 0x56, 0x65, 0x72, 0x69, 0x66, + 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x0e, 0x0a, 0x0c, 0x53, 0x74, 0x61, 0x74, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xee, 0x02, 0x0a, 0x0a, 0x53, 0x74, 0x61, + 0x74, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x6d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0d, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x61, 0x64, 0x79, 0x12, 0x1f, + 0x0a, 0x0b, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, + 0x21, 0x0a, 0x0c, 0x70, 0x65, 0x65, 0x72, 0x73, 0x5f, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x70, 0x65, 0x65, 0x72, 0x73, 0x55, 0x6e, 0x69, 0x71, + 0x75, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, + 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x12, 0x1a, 0x0a, + 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, + 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x62, 0x79, 0x74, + 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x0e, 0x62, 0x79, 0x74, 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, + 0x65, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x62, 0x79, 0x74, 0x65, 0x73, 0x54, 0x6f, + 0x74, 0x61, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x72, 0x61, + 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, + 0x52, 0x61, 0x74, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, + 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x64, 0x6f, 0x77, + 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x61, 0x74, 0x65, 0x32, 0x8a, 0x02, 0x0a, 0x0a, 0x44, 0x6f, + 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x72, 0x12, 0x41, 0x0a, 0x08, 0x44, 0x6f, 0x77, 0x6e, + 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x1b, 0x2e, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x65, + 0x72, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x3d, 0x0a, 0x06, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x19, 0x2e, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, + 0x65, 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x3d, 0x0a, 0x06, 0x56, 0x65, + 0x72, 0x69, 0x66, 0x79, 0x12, 0x19, 0x2e, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x65, + 0x72, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x3b, 0x0a, 0x05, 0x53, 0x74, 0x61, + 0x74, 0x73, 0x12, 0x18, 0x2e, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x72, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, - 0x64, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, - 0x42, 0x19, 0x5a, 0x17, 0x2e, 0x2f, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x72, - 0x3b, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x42, 0x19, 0x5a, 0x17, 0x2e, 0x2f, 0x64, 0x6f, 0x77, 0x6e, + 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x72, 0x3b, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x65, + 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -400,27 +454,30 @@ func file_downloader_downloader_proto_rawDescGZIP() []byte { return file_downloader_downloader_proto_rawDescData } -var file_downloader_downloader_proto_msgTypes = make([]protoimpl.MessageInfo, 5) +var file_downloader_downloader_proto_msgTypes = make([]protoimpl.MessageInfo, 6) var file_downloader_downloader_proto_goTypes = []interface{}{ (*DownloadItem)(nil), // 0: downloader.DownloadItem (*DownloadRequest)(nil), // 1: downloader.DownloadRequest - (*VerifyRequest)(nil), // 2: downloader.VerifyRequest - (*StatsRequest)(nil), // 3: downloader.StatsRequest - (*StatsReply)(nil), // 4: downloader.StatsReply - (*types.H160)(nil), // 5: types.H160 - (*emptypb.Empty)(nil), // 6: google.protobuf.Empty + (*DeleteRequest)(nil), // 2: downloader.DeleteRequest + (*VerifyRequest)(nil), // 3: downloader.VerifyRequest + (*StatsRequest)(nil), // 4: downloader.StatsRequest + (*StatsReply)(nil), // 5: downloader.StatsReply + (*types.H160)(nil), // 6: types.H160 + (*emptypb.Empty)(nil), // 7: google.protobuf.Empty } var file_downloader_downloader_proto_depIdxs = []int32{ - 5, // 0: downloader.DownloadItem.torrent_hash:type_name -> types.H160 + 6, // 0: downloader.DownloadItem.torrent_hash:type_name -> types.H160 0, // 1: downloader.DownloadRequest.items:type_name -> downloader.DownloadItem 1, // 2: downloader.Downloader.Download:input_type -> downloader.DownloadRequest - 2, // 3: downloader.Downloader.Verify:input_type -> downloader.VerifyRequest - 3, // 4: downloader.Downloader.Stats:input_type -> downloader.StatsRequest - 6, // 5: downloader.Downloader.Download:output_type -> google.protobuf.Empty - 6, // 6: downloader.Downloader.Verify:output_type -> google.protobuf.Empty - 4, // 7: downloader.Downloader.Stats:output_type -> downloader.StatsReply - 5, // [5:8] is the sub-list for method output_type - 2, // [2:5] is the sub-list for method input_type + 2, // 3: downloader.Downloader.Delete:input_type -> downloader.DeleteRequest + 3, // 4: downloader.Downloader.Verify:input_type -> downloader.VerifyRequest + 4, // 5: downloader.Downloader.Stats:input_type -> downloader.StatsRequest + 7, // 6: downloader.Downloader.Download:output_type -> google.protobuf.Empty + 7, // 7: downloader.Downloader.Delete:output_type -> google.protobuf.Empty + 7, // 8: downloader.Downloader.Verify:output_type -> google.protobuf.Empty + 5, // 9: downloader.Downloader.Stats:output_type -> downloader.StatsReply + 6, // [6:10] is the sub-list for method output_type + 2, // [2:6] is the sub-list for method input_type 2, // [2:2] is the sub-list for extension type_name 2, // [2:2] is the sub-list for extension extendee 0, // [0:2] is the sub-list for field type_name @@ -457,7 +514,7 @@ func file_downloader_downloader_proto_init() { } } file_downloader_downloader_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*VerifyRequest); i { + switch v := v.(*DeleteRequest); i { case 0: return &v.state case 1: @@ -469,7 +526,7 @@ func file_downloader_downloader_proto_init() { } } file_downloader_downloader_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StatsRequest); i { + switch v := v.(*VerifyRequest); i { case 0: return &v.state case 1: @@ -481,6 +538,18 @@ func file_downloader_downloader_proto_init() { } } file_downloader_downloader_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StatsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_downloader_downloader_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StatsReply); i { case 0: return &v.state @@ -499,7 +568,7 @@ func file_downloader_downloader_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_downloader_downloader_proto_rawDesc, NumEnums: 0, - NumMessages: 5, + NumMessages: 6, NumExtensions: 0, NumServices: 1, }, diff --git a/erigon-lib/gointerfaces/downloader/downloader_grpc.pb.go b/erigon-lib/gointerfaces/downloader/downloader_grpc.pb.go index 831743bbc71..d4520105f64 100644 --- a/erigon-lib/gointerfaces/downloader/downloader_grpc.pb.go +++ b/erigon-lib/gointerfaces/downloader/downloader_grpc.pb.go @@ -21,6 +21,7 @@ const _ = grpc.SupportPackageIsVersion7 const ( Downloader_Download_FullMethodName = "/downloader.Downloader/Download" + Downloader_Delete_FullMethodName = "/downloader.Downloader/Delete" Downloader_Verify_FullMethodName = "/downloader.Downloader/Verify" Downloader_Stats_FullMethodName = "/downloader.Downloader/Stats" ) @@ -30,6 +31,7 @@ const ( // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. type DownloaderClient interface { Download(ctx context.Context, in *DownloadRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) + Delete(ctx context.Context, in *DeleteRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) Verify(ctx context.Context, in *VerifyRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) Stats(ctx context.Context, in *StatsRequest, opts ...grpc.CallOption) (*StatsReply, error) } @@ -51,6 +53,15 @@ func (c *downloaderClient) Download(ctx context.Context, in *DownloadRequest, op return out, nil } +func (c *downloaderClient) Delete(ctx context.Context, in *DeleteRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { + out := new(emptypb.Empty) + err := c.cc.Invoke(ctx, Downloader_Delete_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *downloaderClient) Verify(ctx context.Context, in *VerifyRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { out := new(emptypb.Empty) err := c.cc.Invoke(ctx, Downloader_Verify_FullMethodName, in, out, opts...) @@ -74,6 +85,7 @@ func (c *downloaderClient) Stats(ctx context.Context, in *StatsRequest, opts ... // for forward compatibility type DownloaderServer interface { Download(context.Context, *DownloadRequest) (*emptypb.Empty, error) + Delete(context.Context, *DeleteRequest) (*emptypb.Empty, error) Verify(context.Context, *VerifyRequest) (*emptypb.Empty, error) Stats(context.Context, *StatsRequest) (*StatsReply, error) mustEmbedUnimplementedDownloaderServer() @@ -86,6 +98,9 @@ type UnimplementedDownloaderServer struct { func (UnimplementedDownloaderServer) Download(context.Context, *DownloadRequest) (*emptypb.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method Download not implemented") } +func (UnimplementedDownloaderServer) Delete(context.Context, *DeleteRequest) (*emptypb.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method Delete not implemented") +} func (UnimplementedDownloaderServer) Verify(context.Context, *VerifyRequest) (*emptypb.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method Verify not implemented") } @@ -123,6 +138,24 @@ func _Downloader_Download_Handler(srv interface{}, ctx context.Context, dec func return interceptor(ctx, in, info, handler) } +func _Downloader_Delete_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(DownloaderServer).Delete(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Downloader_Delete_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(DownloaderServer).Delete(ctx, req.(*DeleteRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _Downloader_Verify_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(VerifyRequest) if err := dec(in); err != nil { @@ -170,6 +203,10 @@ var Downloader_ServiceDesc = grpc.ServiceDesc{ MethodName: "Download", Handler: _Downloader_Download_Handler, }, + { + MethodName: "Delete", + Handler: _Downloader_Delete_Handler, + }, { MethodName: "Verify", Handler: _Downloader_Verify_Handler, diff --git a/erigon-lib/gointerfaces/execution/execution.pb.go b/erigon-lib/gointerfaces/execution/execution.pb.go index 5c2effd51b8..c331568493b 100644 --- a/erigon-lib/gointerfaces/execution/execution.pb.go +++ b/erigon-lib/gointerfaces/execution/execution.pb.go @@ -1566,6 +1566,53 @@ func (x *ReadyResponse) GetReady() bool { return false } +type FrozenBlocksResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FrozenBlocks uint64 `protobuf:"varint,1,opt,name=frozen_blocks,json=frozenBlocks,proto3" json:"frozen_blocks,omitempty"` +} + +func (x *FrozenBlocksResponse) Reset() { + *x = FrozenBlocksResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_execution_execution_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FrozenBlocksResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FrozenBlocksResponse) ProtoMessage() {} + +func (x *FrozenBlocksResponse) ProtoReflect() protoreflect.Message { + mi := &file_execution_execution_proto_msgTypes[24] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FrozenBlocksResponse.ProtoReflect.Descriptor instead. +func (*FrozenBlocksResponse) Descriptor() ([]byte, []int) { + return file_execution_execution_proto_rawDescGZIP(), []int{24} +} + +func (x *FrozenBlocksResponse) GetFrozenBlocks() uint64 { + if x != nil { + return x.FrozenBlocks + } + return 0 +} + var File_execution_execution_proto protoreflect.FileDescriptor var file_execution_execution_proto_rawDesc = []byte{ @@ -1808,87 +1855,96 @@ var file_execution_execution_proto_rawDesc = []byte{ 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x25, 0x0a, 0x0d, 0x52, 0x65, 0x61, 0x64, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x61, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x72, 0x65, 0x61, - 0x64, 0x79, 0x2a, 0x71, 0x0a, 0x0f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, - 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x42, 0x61, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x10, 0x01, - 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x6f, 0x6f, 0x46, 0x61, 0x72, 0x41, 0x77, 0x61, 0x79, 0x10, 0x02, - 0x12, 0x12, 0x0a, 0x0e, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x46, - 0x6f, 0x72, 0x6b, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x10, 0x04, 0x12, 0x08, 0x0a, 0x04, 0x42, - 0x75, 0x73, 0x79, 0x10, 0x05, 0x32, 0xf6, 0x08, 0x0a, 0x09, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x4a, 0x0a, 0x0c, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x73, 0x12, 0x1e, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, - 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, - 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, - 0x4b, 0x0a, 0x0d, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, - 0x12, 0x1c, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x56, 0x61, 0x6c, - 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, - 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x12, 0x47, 0x0a, 0x10, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x12, 0x15, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x46, 0x6f, 0x72, - 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x1a, 0x1c, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, - 0x63, 0x65, 0x69, 0x70, 0x74, 0x12, 0x52, 0x0a, 0x0d, 0x41, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, - 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x1f, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x65, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5e, 0x0a, 0x11, 0x47, 0x65, 0x74, - 0x41, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x23, - 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x73, - 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, - 0x47, 0x65, 0x74, 0x41, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x0d, 0x43, 0x75, 0x72, - 0x72, 0x65, 0x6e, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x1a, 0x1c, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, - 0x65, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x3f, 0x0a, 0x05, 0x47, 0x65, 0x74, 0x54, 0x44, 0x12, 0x1c, 0x2e, 0x65, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x47, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x1c, - 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x65, - 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x07, 0x47, 0x65, - 0x74, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x1c, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, - 0x47, 0x65, 0x74, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x59, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x64, 0x69, 0x65, 0x73, 0x42, 0x79, 0x52, 0x61, - 0x6e, 0x67, 0x65, 0x12, 0x22, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, + 0x64, 0x79, 0x22, 0x3b, 0x0a, 0x14, 0x46, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x72, + 0x6f, 0x7a, 0x65, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0c, 0x66, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x2a, + 0x71, 0x0a, 0x0f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, + 0x0c, 0x0a, 0x08, 0x42, 0x61, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x10, 0x01, 0x12, 0x0e, 0x0a, + 0x0a, 0x54, 0x6f, 0x6f, 0x46, 0x61, 0x72, 0x41, 0x77, 0x61, 0x79, 0x10, 0x02, 0x12, 0x12, 0x0a, + 0x0e, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x03, 0x12, 0x15, 0x0a, 0x11, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x46, 0x6f, 0x72, 0x6b, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x10, 0x04, 0x12, 0x08, 0x0a, 0x04, 0x42, 0x75, 0x73, 0x79, + 0x10, 0x05, 0x32, 0xbf, 0x09, 0x0a, 0x09, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x4a, 0x0a, 0x0c, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, + 0x12, 0x1e, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x49, 0x6e, 0x73, + 0x65, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1a, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x49, 0x6e, 0x73, + 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x4b, 0x0a, 0x0d, + 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x1c, 0x2e, + 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x65, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x12, 0x47, 0x0a, 0x10, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x15, 0x2e, + 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x1a, 0x1c, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x63, 0x65, 0x69, + 0x70, 0x74, 0x12, 0x52, 0x0a, 0x0d, 0x41, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x65, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x12, 0x1f, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, + 0x41, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x2e, 0x41, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5e, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x41, 0x73, 0x73, + 0x65, 0x6d, 0x62, 0x6c, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x23, 0x2e, 0x65, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x73, 0x73, 0x65, 0x6d, + 0x62, 0x6c, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x24, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, + 0x41, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x0d, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, + 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, + 0x1c, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x48, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, + 0x05, 0x47, 0x65, 0x74, 0x54, 0x44, 0x12, 0x1c, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x2e, 0x47, 0x65, 0x74, 0x54, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, + 0x0a, 0x09, 0x47, 0x65, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x1c, 0x2e, 0x65, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x65, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x42, 0x6f, + 0x64, 0x79, 0x12, 0x1c, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, + 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1a, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, + 0x42, 0x6f, 0x64, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x59, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x64, 0x69, 0x65, 0x73, 0x42, 0x79, 0x52, 0x61, 0x6e, 0x67, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x64, 0x69, 0x65, 0x73, 0x42, 0x61, 0x74, - 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5b, 0x0a, 0x11, 0x47, 0x65, - 0x74, 0x42, 0x6f, 0x64, 0x69, 0x65, 0x73, 0x42, 0x79, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, - 0x23, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x42, - 0x6f, 0x64, 0x69, 0x65, 0x73, 0x42, 0x79, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x52, 0x65, 0x71, + 0x12, 0x22, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, + 0x42, 0x6f, 0x64, 0x69, 0x65, 0x73, 0x42, 0x79, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x64, 0x69, 0x65, 0x73, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x0f, 0x49, 0x73, 0x43, 0x61, 0x6e, - 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x48, 0x61, 0x73, 0x68, 0x12, 0x0b, 0x2e, 0x74, 0x79, 0x70, - 0x65, 0x73, 0x2e, 0x48, 0x32, 0x35, 0x36, 0x1a, 0x1e, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x2e, 0x49, 0x73, 0x43, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x48, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x0b, - 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, 0x32, 0x35, 0x36, 0x1a, 0x26, 0x2e, 0x65, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x48, 0x61, 0x73, 0x68, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x15, 0x2e, 0x65, - 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x12, 0x39, 0x0a, 0x05, 0x52, 0x65, 0x61, 0x64, 0x79, 0x12, 0x16, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, - 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x18, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x2e, 0x52, 0x65, 0x61, 0x64, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x17, - 0x5a, 0x15, 0x2e, 0x2f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x3b, 0x65, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5b, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x42, 0x6f, + 0x64, 0x69, 0x65, 0x73, 0x42, 0x79, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x23, 0x2e, 0x65, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x64, 0x69, + 0x65, 0x73, 0x42, 0x79, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x21, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, + 0x74, 0x42, 0x6f, 0x64, 0x69, 0x65, 0x73, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x0f, 0x49, 0x73, 0x43, 0x61, 0x6e, 0x6f, 0x6e, 0x69, + 0x63, 0x61, 0x6c, 0x48, 0x61, 0x73, 0x68, 0x12, 0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, + 0x48, 0x32, 0x35, 0x36, 0x1a, 0x1e, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x2e, 0x49, 0x73, 0x43, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x48, 0x61, 0x73, 0x68, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x0b, 0x2e, 0x74, 0x79, + 0x70, 0x65, 0x73, 0x2e, 0x48, 0x32, 0x35, 0x36, 0x1a, 0x26, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x61, + 0x73, 0x68, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x3e, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x15, 0x2e, 0x65, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x12, 0x39, 0x0a, 0x05, 0x52, 0x65, 0x61, 0x64, 0x79, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x1a, 0x18, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, + 0x61, 0x64, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x0c, 0x46, + 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, + 0x70, 0x74, 0x79, 0x1a, 0x1f, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, + 0x46, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x17, 0x5a, 0x15, 0x2e, 0x2f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x3b, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1904,7 +1960,7 @@ func file_execution_execution_proto_rawDescGZIP() []byte { } var file_execution_execution_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_execution_execution_proto_msgTypes = make([]protoimpl.MessageInfo, 24) +var file_execution_execution_proto_msgTypes = make([]protoimpl.MessageInfo, 25) var file_execution_execution_proto_goTypes = []interface{}{ (ExecutionStatus)(0), // 0: execution.ExecutionStatus (*ForkChoiceReceipt)(nil), // 1: execution.ForkChoiceReceipt @@ -1931,90 +1987,93 @@ var file_execution_execution_proto_goTypes = []interface{}{ (*GetBodiesByHashesRequest)(nil), // 22: execution.GetBodiesByHashesRequest (*GetBodiesByRangeRequest)(nil), // 23: execution.GetBodiesByRangeRequest (*ReadyResponse)(nil), // 24: execution.ReadyResponse - (*types.H256)(nil), // 25: types.H256 - (*types.H160)(nil), // 26: types.H160 - (*types.H2048)(nil), // 27: types.H2048 - (*types.Withdrawal)(nil), // 28: types.Withdrawal - (*types.ExecutionPayload)(nil), // 29: types.ExecutionPayload - (*types.BlobsBundleV1)(nil), // 30: types.BlobsBundleV1 - (*emptypb.Empty)(nil), // 31: google.protobuf.Empty + (*FrozenBlocksResponse)(nil), // 25: execution.FrozenBlocksResponse + (*types.H256)(nil), // 26: types.H256 + (*types.H160)(nil), // 27: types.H160 + (*types.H2048)(nil), // 28: types.H2048 + (*types.Withdrawal)(nil), // 29: types.Withdrawal + (*types.ExecutionPayload)(nil), // 30: types.ExecutionPayload + (*types.BlobsBundleV1)(nil), // 31: types.BlobsBundleV1 + (*emptypb.Empty)(nil), // 32: google.protobuf.Empty } var file_execution_execution_proto_depIdxs = []int32{ 0, // 0: execution.ForkChoiceReceipt.status:type_name -> execution.ExecutionStatus - 25, // 1: execution.ForkChoiceReceipt.latest_valid_hash:type_name -> types.H256 + 26, // 1: execution.ForkChoiceReceipt.latest_valid_hash:type_name -> types.H256 0, // 2: execution.ValidationReceipt.validation_status:type_name -> execution.ExecutionStatus - 25, // 3: execution.ValidationReceipt.latest_valid_hash:type_name -> types.H256 - 25, // 4: execution.Header.parent_hash:type_name -> types.H256 - 26, // 5: execution.Header.coinbase:type_name -> types.H160 - 25, // 6: execution.Header.state_root:type_name -> types.H256 - 25, // 7: execution.Header.receipt_root:type_name -> types.H256 - 27, // 8: execution.Header.logs_bloom:type_name -> types.H2048 - 25, // 9: execution.Header.prev_randao:type_name -> types.H256 - 25, // 10: execution.Header.difficulty:type_name -> types.H256 - 25, // 11: execution.Header.block_hash:type_name -> types.H256 - 25, // 12: execution.Header.ommer_hash:type_name -> types.H256 - 25, // 13: execution.Header.transaction_hash:type_name -> types.H256 - 25, // 14: execution.Header.base_fee_per_gas:type_name -> types.H256 - 25, // 15: execution.Header.withdrawal_hash:type_name -> types.H256 - 25, // 16: execution.Header.parent_beacon_block_root:type_name -> types.H256 - 25, // 17: execution.BlockBody.block_hash:type_name -> types.H256 + 26, // 3: execution.ValidationReceipt.latest_valid_hash:type_name -> types.H256 + 26, // 4: execution.Header.parent_hash:type_name -> types.H256 + 27, // 5: execution.Header.coinbase:type_name -> types.H160 + 26, // 6: execution.Header.state_root:type_name -> types.H256 + 26, // 7: execution.Header.receipt_root:type_name -> types.H256 + 28, // 8: execution.Header.logs_bloom:type_name -> types.H2048 + 26, // 9: execution.Header.prev_randao:type_name -> types.H256 + 26, // 10: execution.Header.difficulty:type_name -> types.H256 + 26, // 11: execution.Header.block_hash:type_name -> types.H256 + 26, // 12: execution.Header.ommer_hash:type_name -> types.H256 + 26, // 13: execution.Header.transaction_hash:type_name -> types.H256 + 26, // 14: execution.Header.base_fee_per_gas:type_name -> types.H256 + 26, // 15: execution.Header.withdrawal_hash:type_name -> types.H256 + 26, // 16: execution.Header.parent_beacon_block_root:type_name -> types.H256 + 26, // 17: execution.BlockBody.block_hash:type_name -> types.H256 4, // 18: execution.BlockBody.uncles:type_name -> execution.Header - 28, // 19: execution.BlockBody.withdrawals:type_name -> types.Withdrawal + 29, // 19: execution.BlockBody.withdrawals:type_name -> types.Withdrawal 4, // 20: execution.Block.header:type_name -> execution.Header 5, // 21: execution.Block.body:type_name -> execution.BlockBody 4, // 22: execution.GetHeaderResponse.header:type_name -> execution.Header - 25, // 23: execution.GetTDResponse.td:type_name -> types.H256 + 26, // 23: execution.GetTDResponse.td:type_name -> types.H256 5, // 24: execution.GetBodyResponse.body:type_name -> execution.BlockBody - 25, // 25: execution.GetSegmentRequest.block_hash:type_name -> types.H256 + 26, // 25: execution.GetSegmentRequest.block_hash:type_name -> types.H256 6, // 26: execution.InsertBlocksRequest.blocks:type_name -> execution.Block - 25, // 27: execution.ForkChoice.head_block_hash:type_name -> types.H256 - 25, // 28: execution.ForkChoice.finalized_block_hash:type_name -> types.H256 - 25, // 29: execution.ForkChoice.safe_block_hash:type_name -> types.H256 + 26, // 27: execution.ForkChoice.head_block_hash:type_name -> types.H256 + 26, // 28: execution.ForkChoice.finalized_block_hash:type_name -> types.H256 + 26, // 29: execution.ForkChoice.safe_block_hash:type_name -> types.H256 0, // 30: execution.InsertionResult.result:type_name -> execution.ExecutionStatus - 25, // 31: execution.ValidationRequest.hash:type_name -> types.H256 - 25, // 32: execution.AssembleBlockRequest.parent_hash:type_name -> types.H256 - 25, // 33: execution.AssembleBlockRequest.prev_randao:type_name -> types.H256 - 26, // 34: execution.AssembleBlockRequest.suggested_fee_recipient:type_name -> types.H160 - 28, // 35: execution.AssembleBlockRequest.withdrawals:type_name -> types.Withdrawal - 25, // 36: execution.AssembleBlockRequest.parent_beacon_block_root:type_name -> types.H256 - 29, // 37: execution.AssembledBlockData.execution_payload:type_name -> types.ExecutionPayload - 25, // 38: execution.AssembledBlockData.block_value:type_name -> types.H256 - 30, // 39: execution.AssembledBlockData.blobs_bundle:type_name -> types.BlobsBundleV1 + 26, // 31: execution.ValidationRequest.hash:type_name -> types.H256 + 26, // 32: execution.AssembleBlockRequest.parent_hash:type_name -> types.H256 + 26, // 33: execution.AssembleBlockRequest.prev_randao:type_name -> types.H256 + 27, // 34: execution.AssembleBlockRequest.suggested_fee_recipient:type_name -> types.H160 + 29, // 35: execution.AssembleBlockRequest.withdrawals:type_name -> types.Withdrawal + 26, // 36: execution.AssembleBlockRequest.parent_beacon_block_root:type_name -> types.H256 + 30, // 37: execution.AssembledBlockData.execution_payload:type_name -> types.ExecutionPayload + 26, // 38: execution.AssembledBlockData.block_value:type_name -> types.H256 + 31, // 39: execution.AssembledBlockData.blobs_bundle:type_name -> types.BlobsBundleV1 19, // 40: execution.GetAssembledBlockResponse.data:type_name -> execution.AssembledBlockData 5, // 41: execution.GetBodiesBatchResponse.bodies:type_name -> execution.BlockBody - 25, // 42: execution.GetBodiesByHashesRequest.hashes:type_name -> types.H256 + 26, // 42: execution.GetBodiesByHashesRequest.hashes:type_name -> types.H256 12, // 43: execution.Execution.InsertBlocks:input_type -> execution.InsertBlocksRequest 15, // 44: execution.Execution.ValidateChain:input_type -> execution.ValidationRequest 13, // 45: execution.Execution.UpdateForkChoice:input_type -> execution.ForkChoice 16, // 46: execution.Execution.AssembleBlock:input_type -> execution.AssembleBlockRequest 18, // 47: execution.Execution.GetAssembledBlock:input_type -> execution.GetAssembledBlockRequest - 31, // 48: execution.Execution.CurrentHeader:input_type -> google.protobuf.Empty + 32, // 48: execution.Execution.CurrentHeader:input_type -> google.protobuf.Empty 11, // 49: execution.Execution.GetTD:input_type -> execution.GetSegmentRequest 11, // 50: execution.Execution.GetHeader:input_type -> execution.GetSegmentRequest 11, // 51: execution.Execution.GetBody:input_type -> execution.GetSegmentRequest 23, // 52: execution.Execution.GetBodiesByRange:input_type -> execution.GetBodiesByRangeRequest 22, // 53: execution.Execution.GetBodiesByHashes:input_type -> execution.GetBodiesByHashesRequest - 25, // 54: execution.Execution.IsCanonicalHash:input_type -> types.H256 - 25, // 55: execution.Execution.GetHeaderHashNumber:input_type -> types.H256 - 31, // 56: execution.Execution.GetForkChoice:input_type -> google.protobuf.Empty - 31, // 57: execution.Execution.Ready:input_type -> google.protobuf.Empty - 14, // 58: execution.Execution.InsertBlocks:output_type -> execution.InsertionResult - 2, // 59: execution.Execution.ValidateChain:output_type -> execution.ValidationReceipt - 1, // 60: execution.Execution.UpdateForkChoice:output_type -> execution.ForkChoiceReceipt - 17, // 61: execution.Execution.AssembleBlock:output_type -> execution.AssembleBlockResponse - 20, // 62: execution.Execution.GetAssembledBlock:output_type -> execution.GetAssembledBlockResponse - 7, // 63: execution.Execution.CurrentHeader:output_type -> execution.GetHeaderResponse - 8, // 64: execution.Execution.GetTD:output_type -> execution.GetTDResponse - 7, // 65: execution.Execution.GetHeader:output_type -> execution.GetHeaderResponse - 9, // 66: execution.Execution.GetBody:output_type -> execution.GetBodyResponse - 21, // 67: execution.Execution.GetBodiesByRange:output_type -> execution.GetBodiesBatchResponse - 21, // 68: execution.Execution.GetBodiesByHashes:output_type -> execution.GetBodiesBatchResponse - 3, // 69: execution.Execution.IsCanonicalHash:output_type -> execution.IsCanonicalResponse - 10, // 70: execution.Execution.GetHeaderHashNumber:output_type -> execution.GetHeaderHashNumberResponse - 13, // 71: execution.Execution.GetForkChoice:output_type -> execution.ForkChoice - 24, // 72: execution.Execution.Ready:output_type -> execution.ReadyResponse - 58, // [58:73] is the sub-list for method output_type - 43, // [43:58] is the sub-list for method input_type + 26, // 54: execution.Execution.IsCanonicalHash:input_type -> types.H256 + 26, // 55: execution.Execution.GetHeaderHashNumber:input_type -> types.H256 + 32, // 56: execution.Execution.GetForkChoice:input_type -> google.protobuf.Empty + 32, // 57: execution.Execution.Ready:input_type -> google.protobuf.Empty + 32, // 58: execution.Execution.FrozenBlocks:input_type -> google.protobuf.Empty + 14, // 59: execution.Execution.InsertBlocks:output_type -> execution.InsertionResult + 2, // 60: execution.Execution.ValidateChain:output_type -> execution.ValidationReceipt + 1, // 61: execution.Execution.UpdateForkChoice:output_type -> execution.ForkChoiceReceipt + 17, // 62: execution.Execution.AssembleBlock:output_type -> execution.AssembleBlockResponse + 20, // 63: execution.Execution.GetAssembledBlock:output_type -> execution.GetAssembledBlockResponse + 7, // 64: execution.Execution.CurrentHeader:output_type -> execution.GetHeaderResponse + 8, // 65: execution.Execution.GetTD:output_type -> execution.GetTDResponse + 7, // 66: execution.Execution.GetHeader:output_type -> execution.GetHeaderResponse + 9, // 67: execution.Execution.GetBody:output_type -> execution.GetBodyResponse + 21, // 68: execution.Execution.GetBodiesByRange:output_type -> execution.GetBodiesBatchResponse + 21, // 69: execution.Execution.GetBodiesByHashes:output_type -> execution.GetBodiesBatchResponse + 3, // 70: execution.Execution.IsCanonicalHash:output_type -> execution.IsCanonicalResponse + 10, // 71: execution.Execution.GetHeaderHashNumber:output_type -> execution.GetHeaderHashNumberResponse + 13, // 72: execution.Execution.GetForkChoice:output_type -> execution.ForkChoice + 24, // 73: execution.Execution.Ready:output_type -> execution.ReadyResponse + 25, // 74: execution.Execution.FrozenBlocks:output_type -> execution.FrozenBlocksResponse + 59, // [59:75] is the sub-list for method output_type + 43, // [43:59] is the sub-list for method input_type 43, // [43:43] is the sub-list for extension type_name 43, // [43:43] is the sub-list for extension extendee 0, // [0:43] is the sub-list for field type_name @@ -2314,6 +2373,18 @@ func file_execution_execution_proto_init() { return nil } } + file_execution_execution_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FrozenBlocksResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } file_execution_execution_proto_msgTypes[3].OneofWrappers = []interface{}{} file_execution_execution_proto_msgTypes[6].OneofWrappers = []interface{}{} @@ -2330,7 +2401,7 @@ func file_execution_execution_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_execution_execution_proto_rawDesc, NumEnums: 1, - NumMessages: 24, + NumMessages: 25, NumExtensions: 0, NumServices: 1, }, diff --git a/erigon-lib/gointerfaces/execution/execution_grpc.pb.go b/erigon-lib/gointerfaces/execution/execution_grpc.pb.go index b3779a0b1b7..065a305e8fc 100644 --- a/erigon-lib/gointerfaces/execution/execution_grpc.pb.go +++ b/erigon-lib/gointerfaces/execution/execution_grpc.pb.go @@ -36,6 +36,7 @@ const ( Execution_GetHeaderHashNumber_FullMethodName = "/execution.Execution/GetHeaderHashNumber" Execution_GetForkChoice_FullMethodName = "/execution.Execution/GetForkChoice" Execution_Ready_FullMethodName = "/execution.Execution/Ready" + Execution_FrozenBlocks_FullMethodName = "/execution.Execution/FrozenBlocks" ) // ExecutionClient is the client API for Execution service. @@ -66,6 +67,8 @@ type ExecutionClient interface { // Misc // We want to figure out whether we processed snapshots and cleanup sync cycles. Ready(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*ReadyResponse, error) + // Frozen blocks are how many blocks are in snapshots .seg files. + FrozenBlocks(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*FrozenBlocksResponse, error) } type executionClient struct { @@ -211,6 +214,15 @@ func (c *executionClient) Ready(ctx context.Context, in *emptypb.Empty, opts ... return out, nil } +func (c *executionClient) FrozenBlocks(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*FrozenBlocksResponse, error) { + out := new(FrozenBlocksResponse) + err := c.cc.Invoke(ctx, Execution_FrozenBlocks_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // ExecutionServer is the server API for Execution service. // All implementations must embed UnimplementedExecutionServer // for forward compatibility @@ -239,6 +251,8 @@ type ExecutionServer interface { // Misc // We want to figure out whether we processed snapshots and cleanup sync cycles. Ready(context.Context, *emptypb.Empty) (*ReadyResponse, error) + // Frozen blocks are how many blocks are in snapshots .seg files. + FrozenBlocks(context.Context, *emptypb.Empty) (*FrozenBlocksResponse, error) mustEmbedUnimplementedExecutionServer() } @@ -291,6 +305,9 @@ func (UnimplementedExecutionServer) GetForkChoice(context.Context, *emptypb.Empt func (UnimplementedExecutionServer) Ready(context.Context, *emptypb.Empty) (*ReadyResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method Ready not implemented") } +func (UnimplementedExecutionServer) FrozenBlocks(context.Context, *emptypb.Empty) (*FrozenBlocksResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method FrozenBlocks not implemented") +} func (UnimplementedExecutionServer) mustEmbedUnimplementedExecutionServer() {} // UnsafeExecutionServer may be embedded to opt out of forward compatibility for this service. @@ -574,6 +591,24 @@ func _Execution_Ready_Handler(srv interface{}, ctx context.Context, dec func(int return interceptor(ctx, in, info, handler) } +func _Execution_FrozenBlocks_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(emptypb.Empty) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ExecutionServer).FrozenBlocks(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Execution_FrozenBlocks_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ExecutionServer).FrozenBlocks(ctx, req.(*emptypb.Empty)) + } + return interceptor(ctx, in, info, handler) +} + // Execution_ServiceDesc is the grpc.ServiceDesc for Execution service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -641,6 +676,10 @@ var Execution_ServiceDesc = grpc.ServiceDesc{ MethodName: "Ready", Handler: _Execution_Ready_Handler, }, + { + MethodName: "FrozenBlocks", + Handler: _Execution_FrozenBlocks_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "execution/execution.proto", diff --git a/erigon-lib/gointerfaces/sentinel/sentinel.pb.go b/erigon-lib/gointerfaces/sentinel/sentinel.pb.go index 78267b9fd9f..0fc32fe89d8 100644 --- a/erigon-lib/gointerfaces/sentinel/sentinel.pb.go +++ b/erigon-lib/gointerfaces/sentinel/sentinel.pb.go @@ -25,13 +25,13 @@ type GossipType int32 const ( // Global gossip topics. - GossipType_BeaconBlockGossipType GossipType = 0 - GossipType_AggregateAndProofGossipType GossipType = 1 - GossipType_VoluntaryExitGossipType GossipType = 2 - GossipType_ProposerSlashingGossipType GossipType = 3 - GossipType_AttesterSlashingGossipType GossipType = 4 - GossipType_BlobSidecarType GossipType = 5 - GossipType_BlsToExecutionChangeType GossipType = 6 + GossipType_BeaconBlockGossipType GossipType = 0 + GossipType_AggregateAndProofGossipType GossipType = 1 + GossipType_VoluntaryExitGossipType GossipType = 2 + GossipType_ProposerSlashingGossipType GossipType = 3 + GossipType_AttesterSlashingGossipType GossipType = 4 + GossipType_BlobSidecarType GossipType = 5 + GossipType_BlsToExecutionChangeGossipType GossipType = 6 ) // Enum value maps for GossipType. @@ -43,16 +43,16 @@ var ( 3: "ProposerSlashingGossipType", 4: "AttesterSlashingGossipType", 5: "BlobSidecarType", - 6: "BlsToExecutionChangeType", + 6: "BlsToExecutionChangeGossipType", } GossipType_value = map[string]int32{ - "BeaconBlockGossipType": 0, - "AggregateAndProofGossipType": 1, - "VoluntaryExitGossipType": 2, - "ProposerSlashingGossipType": 3, - "AttesterSlashingGossipType": 4, - "BlobSidecarType": 5, - "BlsToExecutionChangeType": 6, + "BeaconBlockGossipType": 0, + "AggregateAndProofGossipType": 1, + "VoluntaryExitGossipType": 2, + "ProposerSlashingGossipType": 3, + "AttesterSlashingGossipType": 4, + "BlobSidecarType": 5, + "BlsToExecutionChangeGossipType": 6, } ) @@ -528,7 +528,7 @@ var file_p2psentinel_sentinel_proto_rawDesc = []byte{ 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x22, 0x0a, 0x04, 0x70, 0x65, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x52, 0x04, 0x70, 0x65, 0x65, - 0x72, 0x2a, 0xd8, 0x01, 0x0a, 0x0a, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x54, 0x79, 0x70, 0x65, + 0x72, 0x2a, 0xde, 0x01, 0x0a, 0x0a, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x54, 0x79, 0x70, 0x65, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66, @@ -539,44 +539,45 @@ var file_p2psentinel_sentinel_proto_rawDesc = []byte{ 0x73, 0x69, 0x70, 0x54, 0x79, 0x70, 0x65, 0x10, 0x03, 0x12, 0x1e, 0x0a, 0x1a, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x54, 0x79, 0x70, 0x65, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x42, 0x6c, 0x6f, - 0x62, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x54, 0x79, 0x70, 0x65, 0x10, 0x05, 0x12, 0x1c, - 0x0a, 0x18, 0x42, 0x6c, 0x73, 0x54, 0x6f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x10, 0x06, 0x32, 0x90, 0x04, 0x0a, - 0x08, 0x53, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x12, 0x41, 0x0a, 0x0f, 0x53, 0x75, 0x62, - 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x12, 0x16, 0x2e, 0x73, - 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, - 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x44, 0x61, 0x74, 0x61, 0x30, 0x01, 0x12, 0x3c, 0x0a, 0x0b, - 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x15, 0x2e, 0x73, 0x65, - 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x44, 0x61, - 0x74, 0x61, 0x1a, 0x16, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x35, 0x0a, 0x09, 0x53, 0x65, - 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x10, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, - 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x1a, 0x16, 0x2e, 0x73, 0x65, 0x6e, 0x74, - 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x12, 0x37, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x50, 0x65, 0x65, 0x72, 0x73, 0x12, 0x16, 0x2e, - 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x13, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, - 0x2e, 0x50, 0x65, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x31, 0x0a, 0x07, 0x42, 0x61, - 0x6e, 0x50, 0x65, 0x65, 0x72, 0x12, 0x0e, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, - 0x2e, 0x50, 0x65, 0x65, 0x72, 0x1a, 0x16, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, - 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x33, 0x0a, - 0x09, 0x55, 0x6e, 0x62, 0x61, 0x6e, 0x50, 0x65, 0x65, 0x72, 0x12, 0x0e, 0x2e, 0x73, 0x65, 0x6e, - 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x1a, 0x16, 0x2e, 0x73, 0x65, 0x6e, - 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x12, 0x36, 0x0a, 0x0c, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x50, 0x65, - 0x65, 0x72, 0x12, 0x0e, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x50, 0x65, - 0x65, 0x72, 0x1a, 0x16, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x45, 0x6d, - 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x34, 0x0a, 0x0a, 0x52, 0x65, - 0x77, 0x61, 0x72, 0x64, 0x50, 0x65, 0x65, 0x72, 0x12, 0x0e, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, + 0x62, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x54, 0x79, 0x70, 0x65, 0x10, 0x05, 0x12, 0x22, + 0x0a, 0x1e, 0x42, 0x6c, 0x73, 0x54, 0x6f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x54, 0x79, 0x70, 0x65, + 0x10, 0x06, 0x32, 0x90, 0x04, 0x0a, 0x08, 0x53, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x12, + 0x41, 0x0a, 0x0f, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x47, 0x6f, 0x73, 0x73, + 0x69, 0x70, 0x12, 0x16, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x45, 0x6d, + 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x6e, + 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x44, 0x61, 0x74, 0x61, + 0x30, 0x01, 0x12, 0x3c, 0x0a, 0x0b, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x15, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x16, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, + 0x6e, 0x65, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, + 0x12, 0x35, 0x0a, 0x09, 0x53, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x10, 0x2e, + 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x1a, + 0x16, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x37, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x50, 0x65, + 0x65, 0x72, 0x73, 0x12, 0x16, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x45, + 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x13, 0x2e, 0x73, 0x65, + 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x31, 0x0a, 0x07, 0x42, 0x61, 0x6e, 0x50, 0x65, 0x65, 0x72, 0x12, 0x0e, 0x2e, 0x73, 0x65, + 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x1a, 0x16, 0x2e, 0x73, 0x65, + 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x12, 0x33, 0x0a, 0x09, 0x55, 0x6e, 0x62, 0x61, 0x6e, 0x50, 0x65, 0x65, 0x72, + 0x12, 0x0e, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x50, 0x65, 0x65, 0x72, + 0x1a, 0x16, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x36, 0x0a, 0x0c, 0x50, 0x65, 0x6e, 0x61, + 0x6c, 0x69, 0x7a, 0x65, 0x50, 0x65, 0x65, 0x72, 0x12, 0x0e, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x1a, 0x16, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x12, 0x3d, 0x0a, 0x0d, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x47, 0x6f, 0x73, 0x73, 0x69, - 0x70, 0x12, 0x14, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x47, 0x6f, 0x73, - 0x73, 0x69, 0x70, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x16, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, - 0x65, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, - 0x15, 0x5a, 0x13, 0x2e, 0x2f, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x3b, 0x73, 0x65, - 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x12, 0x34, 0x0a, 0x0a, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x50, 0x65, 0x65, 0x72, 0x12, 0x0e, + 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x1a, 0x16, + 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x3d, 0x0a, 0x0d, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, + 0x68, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x12, 0x14, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, + 0x65, 0x6c, 0x2e, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x16, 0x2e, + 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x15, 0x5a, 0x13, 0x2e, 0x2f, 0x73, 0x65, 0x6e, 0x74, 0x69, + 0x6e, 0x65, 0x6c, 0x3b, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/common/dbutils/composite_keys.go b/erigon-lib/kv/dbutils/composite_keys.go similarity index 95% rename from common/dbutils/composite_keys.go rename to erigon-lib/kv/dbutils/composite_keys.go index d2274f022e3..2be332fbfee 100644 --- a/common/dbutils/composite_keys.go +++ b/erigon-lib/kv/dbutils/composite_keys.go @@ -174,12 +174,3 @@ func encodeTimestamp(timestamp uint64) []byte { } return suffix } - -func decodeTimestamp(suffix []byte) (uint64, []byte) { - bytecount := int(suffix[0] >> 5) - timestamp := uint64(suffix[0] & 0x1f) - for i := 1; i < bytecount; i++ { - timestamp = (timestamp << 8) | uint64(suffix[i]) - } - return timestamp, suffix[bytecount:] -} diff --git a/common/dbutils/composite_keys_test.go b/erigon-lib/kv/dbutils/composite_keys_test.go similarity index 93% rename from common/dbutils/composite_keys_test.go rename to erigon-lib/kv/dbutils/composite_keys_test.go index 7eac33bcfc1..619225a1b47 100644 --- a/common/dbutils/composite_keys_test.go +++ b/erigon-lib/kv/dbutils/composite_keys_test.go @@ -3,10 +3,9 @@ package dbutils import ( "testing" + "github.com/ledgerwatch/erigon-lib/common" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/stretchr/testify/assert" - - "github.com/ledgerwatch/erigon/common" ) func TestPlainParseStoragePrefix(t *testing.T) { @@ -36,7 +35,7 @@ func TestPlainParseCompositeStorageKey(t *testing.T) { } func TestParseStoragePrefix(t *testing.T) { - expectedAddrHash, _ := common.HashData(libcommon.HexToAddress("0x5A0b54D5dc17e0AadC383d2db43B0a0D3E029c4c").Bytes()) + expectedAddrHash, _ := libcommon.HashData(libcommon.HexToAddress("0x5A0b54D5dc17e0AadC383d2db43B0a0D3E029c4c").Bytes()) expectedIncarnation := uint64(999000999) prefix := GenerateStoragePrefix(expectedAddrHash[:], expectedIncarnation) diff --git a/common/dbutils/helper.go b/erigon-lib/kv/dbutils/helper.go similarity index 100% rename from common/dbutils/helper.go rename to erigon-lib/kv/dbutils/helper.go diff --git a/common/dbutils/history_index.go b/erigon-lib/kv/dbutils/history_index.go similarity index 100% rename from common/dbutils/history_index.go rename to erigon-lib/kv/dbutils/history_index.go diff --git a/common/dbutils/suffix_type.go b/erigon-lib/kv/dbutils/suffix_type.go similarity index 100% rename from common/dbutils/suffix_type.go rename to erigon-lib/kv/dbutils/suffix_type.go diff --git a/erigon-lib/kv/kv_interface.go b/erigon-lib/kv/kv_interface.go index adbd8b23c32..86255720a00 100644 --- a/erigon-lib/kv/kv_interface.go +++ b/erigon-lib/kv/kv_interface.go @@ -256,6 +256,9 @@ type RoDB interface { BeginRo(ctx context.Context) (Tx, error) AllTables() TableCfg PageSize() uint64 + + // Pointer to the underlying C environment handle, if applicable (e.g. *C.MDBX_env) + CHandle() unsafe.Pointer } // RwDB low-level database interface - main target is - to provide common abstraction over top of MDBX and RemoteKV. diff --git a/erigon-lib/kv/mdbx/kv_mdbx.go b/erigon-lib/kv/mdbx/kv_mdbx.go index 14afe908494..7bb1702b725 100644 --- a/erigon-lib/kv/mdbx/kv_mdbx.go +++ b/erigon-lib/kv/mdbx/kv_mdbx.go @@ -303,6 +303,9 @@ func (opts MdbxOpts) Open(ctx context.Context) (kv.RwDB, error) { } opts.pageSize = uint64(in.PageSize) + if opts.label == kv.ChainDB { + opts.log.Info("[db] chaindata", "sizeLimit", opts.mapSize, "pageSize", opts.pageSize) + } // erigon using big transactions // increase "page measured" options. need do it after env.Open() because default are depend on pageSize known only after env.Open() @@ -445,6 +448,10 @@ func (db *MdbxKV) PageSize() uint64 { return db.opts.pageSize } func (db *MdbxKV) ReadOnly() bool { return db.opts.HasFlag(mdbx.Readonly) } func (db *MdbxKV) Accede() bool { return db.opts.HasFlag(mdbx.Accede) } +func (db *MdbxKV) CHandle() unsafe.Pointer { + return db.env.CHandle() +} + // openDBIs - first trying to open existing DBI's in RO transaction // otherwise re-try by RW transaction // it allow open DB from another process - even if main process holding long RW transaction @@ -821,7 +828,7 @@ func (tx *MdbxTx) Commit() error { latency, err := tx.tx.Commit() if err != nil { - return err + return fmt.Errorf("lable: %s, %w", tx.db.opts.label, err) } if tx.db.opts.label == kv.ChainDB { diff --git a/erigon-lib/kv/mdbx/kv_mdbx_temporary.go b/erigon-lib/kv/mdbx/kv_mdbx_temporary.go index b35d2f75618..c5e585bffe1 100644 --- a/erigon-lib/kv/mdbx/kv_mdbx_temporary.go +++ b/erigon-lib/kv/mdbx/kv_mdbx_temporary.go @@ -19,6 +19,7 @@ package mdbx import ( "context" "os" + "unsafe" "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/log/v3" @@ -82,3 +83,7 @@ func (t *TemporaryMdbx) Close() { t.db.Close() os.RemoveAll(t.path) } + +func (t *TemporaryMdbx) CHandle() unsafe.Pointer { + panic("CHandle not implemented") +} diff --git a/erigon-lib/kv/membatch/mapmutation.go b/erigon-lib/kv/membatch/mapmutation.go index 0a38f39feff..994a042f67f 100644 --- a/erigon-lib/kv/membatch/mapmutation.go +++ b/erigon-lib/kv/membatch/mapmutation.go @@ -3,6 +3,7 @@ package membatch import ( "context" "encoding/binary" + "errors" "fmt" "sync" "time" @@ -222,8 +223,8 @@ func (m *Mapmutation) doCommit(tx kv.RwTx) error { } func (m *Mapmutation) Flush(ctx context.Context, tx kv.RwTx) error { - if m.db == nil { - return nil + if tx == nil { + return errors.New("rwTx needed") } m.mu.Lock() defer m.mu.Unlock() @@ -234,18 +235,24 @@ func (m *Mapmutation) Flush(ctx context.Context, tx kv.RwTx) error { m.puts = map[string]map[string][]byte{} m.size = 0 m.count = 0 - m.clean() return nil } func (m *Mapmutation) Close() { + if m.clean == nil { + return + } + m.mu.Lock() defer m.mu.Unlock() m.puts = map[string]map[string][]byte{} m.size = 0 m.count = 0 m.size = 0 + m.clean() + m.clean = nil + } func (m *Mapmutation) Commit() error { panic("not db txn, use .Flush method") } func (m *Mapmutation) Rollback() { panic("not db txn, use .Close method") } diff --git a/erigon-lib/kv/membatch/mapmutation_test.go b/erigon-lib/kv/membatch/mapmutation_test.go new file mode 100644 index 00000000000..e3e9927036c --- /dev/null +++ b/erigon-lib/kv/membatch/mapmutation_test.go @@ -0,0 +1,32 @@ +package membatch + +import ( + "context" + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon-lib/kv/memdb" + "github.com/ledgerwatch/log/v3" + "github.com/stretchr/testify/require" + "os" + "testing" +) + +func TestMapmutation_Flush_Close(t *testing.T) { + db := memdb.NewTestDB(t) + + tx, err := db.BeginRw(context.Background()) + require.NoError(t, err) + defer tx.Rollback() + + batch := NewHashBatch(tx, nil, os.TempDir(), log.New()) + defer func() { + batch.Close() + }() + err = batch.Put(kv.ChaindataTables[0], []byte{1}, []byte{1}) + require.NoError(t, err) + err = batch.Put(kv.ChaindataTables[0], []byte{2}, []byte{2}) + require.NoError(t, err) + err = batch.Flush(context.Background(), tx) + require.NoError(t, err) + batch.Close() + batch.Close() +} diff --git a/erigon-lib/kv/remotedb/kv_remote.go b/erigon-lib/kv/remotedb/kv_remote.go index e0ae3a26e79..7df14ae88de 100644 --- a/erigon-lib/kv/remotedb/kv_remote.go +++ b/erigon-lib/kv/remotedb/kv_remote.go @@ -148,6 +148,10 @@ func (db *DB) EnsureVersionCompatibility() bool { func (db *DB) Close() {} +func (db *DB) CHandle() unsafe.Pointer { + panic("CHandle not implemented") +} + func (db *DB) BeginRo(ctx context.Context) (txn kv.Tx, err error) { select { case <-ctx.Done(): diff --git a/erigon-lib/kv/tables.go b/erigon-lib/kv/tables.go index b7f4e7b9493..995603bfa8f 100644 --- a/erigon-lib/kv/tables.go +++ b/erigon-lib/kv/tables.go @@ -430,10 +430,21 @@ const ( BeaconBlocks = "BeaconBlock" // [slot] => [attestation list (custom encoding)] Attestetations = "Attestetations" - // [slot] => [Finalized block root] - FinalizedBlockRoots = "FinalizedBlockRoots" - // [Root (block root/state root/eth1 root)] => Slot - RootSlotIndex = "RootSlotIndex" + + // [slot] => [Canonical block root] + CanonicalBlockRoots = "CanonicalBlockRoots" + // [Root (block root] => Slot + BlockRootToSlot = "BlockRootToSlot" + // [Block Root] => [State Root] + BlockRootToStateRoot = "BlockRootToStateRoot" + StateRootToBlockRoot = "StateRootToBlockRoot" + // [Block Root] => [Parent Root] + BlockRootToParentRoot = "BlockRootToParentRoot" + + HighestFinalized = "HighestFinalized" // hash -> transaction/receipt lookup metadata + + // BlockRoot => Beacon Block Header + BeaconBlockHeaders = "BeaconBlockHeaders" // LightClientStore => LightClientStore object // LightClientFinalityUpdate => latest finality update @@ -469,6 +480,7 @@ var ( CurrentBodiesSnapshotBlock = []byte("CurrentBodiesSnapshotBlock") PlainStateVersion = []byte("PlainStateVersion") + HighestFinalizedKey = []byte("HighestFinalized") LightClientStore = []byte("LightClientStore") LightClientFinalityUpdate = []byte("LightClientFinalityUpdate") LightClientOptimisticUpdate = []byte("LightClientOptimisticUpdate") @@ -586,8 +598,13 @@ var ChaindataTables = []string{ // Beacon stuff BeaconState, BeaconBlocks, - FinalizedBlockRoots, - RootSlotIndex, + CanonicalBlockRoots, + BlockRootToSlot, + BlockRootToStateRoot, + StateRootToBlockRoot, + BlockRootToParentRoot, + BeaconBlockHeaders, + HighestFinalized, Attestetations, LightClient, LightClientUpdates, diff --git a/erigon-lib/kv/temporal/historyv2/readme.md b/erigon-lib/kv/temporal/historyv2/readme.md index 4dbad1c273d..5b35b0d8083 100644 --- a/erigon-lib/kv/temporal/historyv2/readme.md +++ b/erigon-lib/kv/temporal/historyv2/readme.md @@ -50,7 +50,7 @@ AccountChangeSet is serialized in the following manner in order to facilitate bi ### Keys The number of keys N (uint32, 4 bytes) Contiguous array of keys (N*32 bytes) -### Values lengthes +### Values lengths Contiguous array of accumulating value indexes: len(val0), len(val0)+len(val1), ..., len(val0)+len(val1)+...+len(val_{N-1}) (4*N bytes since the lengths are treated as uint32). @@ -61,5 +61,5 @@ Value | Type | Comment ------------ | ------------- | ------------- num of keys | uint32 | address hashes | [num of keys][32]byte | [num of keys]common.Hash -values lengthes | [num of keys]uint32 +values lengths | [num of keys]uint32 values | [num of keys][]byte diff --git a/metrics/collector.go b/erigon-lib/metrics/collector.go similarity index 81% rename from metrics/collector.go rename to erigon-lib/metrics/collector.go index 93bd52aa5ea..4652b676ab5 100644 --- a/metrics/collector.go +++ b/erigon-lib/metrics/collector.go @@ -1,19 +1,3 @@ -// Copyright 2019 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - package metrics import ( diff --git a/metrics/exp.go b/erigon-lib/metrics/exp.go similarity index 100% rename from metrics/exp.go rename to erigon-lib/metrics/exp.go diff --git a/metrics/parsing.go b/erigon-lib/metrics/parsing.go similarity index 100% rename from metrics/parsing.go rename to erigon-lib/metrics/parsing.go diff --git a/metrics/prometheus.go b/erigon-lib/metrics/prometheus.go similarity index 70% rename from metrics/prometheus.go rename to erigon-lib/metrics/prometheus.go index 932bcdc0095..3ea14b35df5 100644 --- a/metrics/prometheus.go +++ b/erigon-lib/metrics/prometheus.go @@ -1,20 +1,3 @@ -// Copyright 2019 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -// Package prometheus exposes go-metrics into a Prometheus format. package metrics import ( diff --git a/metrics/register.go b/erigon-lib/metrics/register.go similarity index 92% rename from metrics/register.go rename to erigon-lib/metrics/register.go index 0839816cb29..50bc619789f 100644 --- a/metrics/register.go +++ b/erigon-lib/metrics/register.go @@ -45,6 +45,12 @@ func GetOrCreateCounter(s string, isGauge ...bool) Counter { counter := defaultSet.GetOrCreateGauge(s) return intCounter{counter} } else { + if counter := DefaultRegistry.Get(s); counter != nil { + if counter, ok := counter.(Counter); ok { + return counter + } + } + counter := vm.GetOrCreateCounter(s, isGauge...) DefaultRegistry.Register(s, counter) vm.GetDefaultSet().UnregisterMetric(s) diff --git a/metrics/registry.go b/erigon-lib/metrics/registry.go similarity index 100% rename from metrics/registry.go rename to erigon-lib/metrics/registry.go diff --git a/metrics/set.go b/erigon-lib/metrics/set.go similarity index 97% rename from metrics/set.go rename to erigon-lib/metrics/set.go index 897d3d7946f..ee455b50c61 100644 --- a/metrics/set.go +++ b/erigon-lib/metrics/set.go @@ -124,7 +124,7 @@ func (s *Set) GetOrCreateHistogram(name string, help ...string) prometheus.Histo metric, err := NewHistogram(name, help...) if err != nil { - panic(fmt.Errorf("BUG: invalid metric name %q: %s", name, err)) + panic(fmt.Errorf("BUG: invalid metric name %q: %w", name, err)) } nmNew := &namedMetric{ @@ -205,7 +205,7 @@ func (s *Set) GetOrCreateCounter(name string, help ...string) prometheus.Counter metric, err := NewCounter(name, help...) if err != nil { - panic(fmt.Errorf("BUG: invalid metric name %q: %s", name, err)) + panic(fmt.Errorf("BUG: invalid metric name %q: %w", name, err)) } nmNew := &namedMetric{ @@ -289,7 +289,7 @@ func (s *Set) GetOrCreateGauge(name string, help ...string) prometheus.Gauge { metric, err := NewGauge(name, help...) if err != nil { - panic(fmt.Errorf("BUG: invalid metric name %q: %s", name, err)) + panic(fmt.Errorf("BUG: invalid metric name %q: %w", name, err)) } nmNew := &namedMetric{ @@ -380,7 +380,7 @@ func (s *Set) GetOrCreateGaugeFunc(name string, f func() float64, help ...string metric, err := NewGaugeFunc(name, f, help...) if err != nil { - panic(fmt.Errorf("BUG: invalid metric name %q: %s", name, err)) + panic(fmt.Errorf("BUG: invalid metric name %q: %w", name, err)) } nmNew := &namedMetric{ @@ -498,7 +498,7 @@ func (s *Set) GetOrCreateSummaryExt(name string, window time.Duration, quantiles metric, err := NewSummary(name, window, quantiles, help...) if err != nil { - panic(fmt.Errorf("BUG: invalid metric name %q: %s", name, err)) + panic(fmt.Errorf("BUG: invalid metric name %q: %w", name, err)) } nmNew := &namedMetric{ @@ -524,7 +524,7 @@ func (s *Set) GetOrCreateSummaryExt(name string, window time.Duration, quantiles func (s *Set) registerMetric(name string, m prometheus.Metric) { if _, _, err := parseMetric(name); err != nil { - panic(fmt.Errorf("BUG: invalid metric name %q: %s", name, err)) + panic(fmt.Errorf("BUG: invalid metric name %q: %w", name, err)) } s.mu.Lock() // defer will unlock in case of panic diff --git a/metrics/timer.go b/erigon-lib/metrics/timer.go similarity index 100% rename from metrics/timer.go rename to erigon-lib/metrics/timer.go diff --git a/erigon-lib/mmap/total_memory.go b/erigon-lib/mmap/total_memory.go new file mode 100644 index 00000000000..33eca4ea38a --- /dev/null +++ b/erigon-lib/mmap/total_memory.go @@ -0,0 +1,21 @@ +package mmap + +import ( + "github.com/ledgerwatch/erigon-lib/common/cmp" + "github.com/pbnjay/memory" + "runtime/debug" +) + +func TotalMemory() uint64 { + mem := memory.TotalMemory() + + if cgroupsMemLimit, err := cgroupsMemoryLimit(); (err == nil) && (cgroupsMemLimit > 0) { + mem = cmp.Min(mem, cgroupsMemLimit) + } + + if goMemLimit := debug.SetMemoryLimit(-1); goMemLimit > 0 { + mem = cmp.Min(mem, uint64(goMemLimit)) + } + + return mem +} diff --git a/erigon-lib/mmap/total_memory_cgroups.go b/erigon-lib/mmap/total_memory_cgroups.go new file mode 100644 index 00000000000..696a1f89e8f --- /dev/null +++ b/erigon-lib/mmap/total_memory_cgroups.go @@ -0,0 +1,117 @@ +//go:build linux + +/* +https://github.com/raulk/go-watchdog +https://github.com/elee1766/go-watchdog + +The MIT License (MIT) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +package mmap + +import ( + "errors" + "fmt" + "github.com/containerd/cgroups/v3" + "github.com/containerd/cgroups/v3/cgroup1" + "github.com/containerd/cgroups/v3/cgroup2" + "os" +) + +// cgroupsMemoryLimit will try to discover +// the memory limit from the cgroup of the process (derived from /proc/self/cgroup), +// or from the root cgroup path if the PID == 1 (which indicates that the process +// is running in a container). +// +// Memory usage is calculated by querying the cgroup stats. +// +// This function will return an error immediately if the OS does not support cgroups, +// or if another error occurs during initialization. +func cgroupsMemoryLimit() (uint64, error) { + switch cgroups.Mode() { + case cgroups.Unified: + return cgroupsV2MemoryLimit() + case cgroups.Legacy: + return cgroupsV1MemoryLimit() + case cgroups.Unavailable: + fallthrough + default: + return 0, errors.New("cgroups not supported in this environment") + } +} + +func cgroupsV1MemoryLimit() (uint64, error) { + // use self path unless our PID is 1, in which case we're running inside + // a container and our limits are in the root path. + path := cgroup1.NestedPath("") + if pid := os.Getpid(); pid == 1 { + path = cgroup1.RootPath + } + + cgroup, err := cgroup1.Load(path, cgroup1.WithHiearchy(func() ([]cgroup1.Subsystem, error) { + system, err := cgroup1.Default() + if err != nil { + return nil, err + } + var out []cgroup1.Subsystem + for _, v := range system { + switch v.Name() { + case cgroup1.Memory: + out = append(out, v) + } + } + return out, nil + })) + if err != nil { + return 0, fmt.Errorf("failed to load cgroup1 for process: %w", err) + } + + if stat, err := cgroup.Stat(); err != nil { + return 0, fmt.Errorf("failed to load memory cgroup1 stats: %w", err) + } else if stat.Memory == nil || stat.Memory.Usage == nil { + return 0, fmt.Errorf("cgroup1 memory stats are nil; aborting") + } else { + return stat.Memory.Usage.Limit, nil + } +} + +func cgroupsV2MemoryLimit() (uint64, error) { + // use self path unless our PID is 1, in which case we're running inside + // a container and our limits are in the root path. + pid := os.Getpid() + path, err := cgroup2.PidGroupPath(pid) + if err != nil { + return 0, fmt.Errorf("failed to load cgroup2 path for process pid %d: %w", pid, err) + } + + cgroup, err := cgroup2.Load(path) + if err != nil { + return 0, fmt.Errorf("failed to load cgroup2 for process: %w", err) + } + + if stat, err := cgroup.Stat(); err != nil { + return 0, fmt.Errorf("failed to load cgroup2 memory stats: %w", err) + } else if stat.Memory == nil { + return 0, fmt.Errorf("cgroup2 memory stats are nil; aborting") + } else { + return stat.Memory.UsageLimit, nil + } +} diff --git a/erigon-lib/mmap/total_memory_cgroups_stub.go b/erigon-lib/mmap/total_memory_cgroups_stub.go new file mode 100644 index 00000000000..0d921aa905b --- /dev/null +++ b/erigon-lib/mmap/total_memory_cgroups_stub.go @@ -0,0 +1,11 @@ +//go:build !linux + +package mmap + +import ( + "errors" +) + +func cgroupsMemoryLimit() (uint64, error) { + return 0, errors.New("cgroups not supported in this environment") +} diff --git a/erigon-lib/pedersen_hash/hash.go b/erigon-lib/pedersen_hash/hash.go index 983c2a02d5f..9182efb30a1 100644 --- a/erigon-lib/pedersen_hash/hash.go +++ b/erigon-lib/pedersen_hash/hash.go @@ -30,6 +30,8 @@ func Hash(input1, input2 string) (string, error) { in1 := C.CBytes(input1Dec) in2 := C.CBytes(input2Dec) var o [1024]byte + // i dont know why it triggers here, but it's a false positive + // nolint:gocritic out := C.CBytes(o[:]) upIn1 := in1 upIn2 := in2 diff --git a/erigon-lib/rlp/encodel.go b/erigon-lib/rlp/encode.go similarity index 99% rename from erigon-lib/rlp/encodel.go rename to erigon-lib/rlp/encode.go index 7e075a7b8c0..693db176aae 100644 --- a/erigon-lib/rlp/encodel.go +++ b/erigon-lib/rlp/encode.go @@ -186,7 +186,7 @@ func EncodeU64(i uint64, to []byte) int { func StringLen(s []byte) int { sLen := len(s) switch { - case sLen > 56: + case sLen >= 56: beLen := common.BitLenToByteLen(bits.Len(uint(sLen))) return 1 + beLen + sLen case sLen == 0: @@ -202,7 +202,7 @@ func StringLen(s []byte) int { } func EncodeString(s []byte, to []byte) int { switch { - case len(s) > 56: + case len(s) >= 56: beLen := common.BitLenToByteLen(bits.Len(uint(len(s)))) binary.BigEndian.PutUint64(to[1:], uint64(len(s))) _ = to[beLen+len(s)] diff --git a/erigon-lib/rlp/encode_test.go b/erigon-lib/rlp/encode_test.go new file mode 100644 index 00000000000..b6a27dc29e6 --- /dev/null +++ b/erigon-lib/rlp/encode_test.go @@ -0,0 +1,44 @@ +/* + Copyright 2023 The Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package rlp + +import ( + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + + "github.com/ledgerwatch/erigon-lib/common/hexutility" +) + +// Strings of length 56 are a boundary case. +// See https://ethereum.org/en/developers/docs/data-structures-and-encoding/rlp/#definition +func TestStringLen56(t *testing.T) { + str := hexutility.MustDecodeHex("7907ca011864321def1e92a3021868f397516ce37c959f25f8dddd3161d7b8301152b35f135c814fae9f487206471b6b0d713cd51a2d3598") + require.Equal(t, 56, len(str)) + + strLen := StringLen(str) + assert.Equal(t, 56+2, strLen) + + encoded := make([]byte, strLen) + EncodeString(str, encoded) + + dataPos, dataLen, err := String(encoded, 0) + require.NoError(t, err) + assert.Equal(t, dataPos, 2) + assert.Equal(t, dataLen, 56) +} diff --git a/erigon-lib/tools/licenses_check.sh b/erigon-lib/tools/licenses_check.sh index a9322d3b318..264c2599b25 100755 --- a/erigon-lib/tools/licenses_check.sh +++ b/erigon-lib/tools/licenses_check.sh @@ -32,6 +32,7 @@ output=$(find "$projectDir" -type 'd' -maxdepth 1 \ | grep -v "crawshaw.io/sqlite" `# ISC` \ | grep -v "erigon-lib/sais" `# MIT` \ | grep -v "github.com/anacrolix/go-libutp" `# MIT` \ + | grep -v "github.com/cespare/xxhash/v2" `# MIT` \ | grep -v "github.com/anacrolix/mmsg" `# MPL-2.0` \ | grep -v "github.com/anacrolix/multiless" `# MPL-2.0` \ | grep -v "github.com/anacrolix/sync" `# MPL-2.0` \ diff --git a/erigon-lib/txpool/fetch.go b/erigon-lib/txpool/fetch.go index 552b01c58fb..eb4c443e27b 100644 --- a/erigon-lib/txpool/fetch.go +++ b/erigon-lib/txpool/fetch.go @@ -436,11 +436,6 @@ func (f *Fetch) handleStateChanges(ctx context.Context, client StateChangesClien if err != nil { return err } - tx, err := f.db.BeginRo(ctx) - if err != nil { - return err - } - defer tx.Rollback() for req, err := stream.Recv(); ; req, err = stream.Recv() { if err != nil { return err @@ -448,59 +443,69 @@ func (f *Fetch) handleStateChanges(ctx context.Context, client StateChangesClien if req == nil { return nil } + if err := f.handleStateChangesRequest(ctx, req); err != nil { + f.logger.Warn("[fetch] onNewBlock", "err", err) + } - var unwindTxs, minedTxs types2.TxSlots - for _, change := range req.ChangeBatch { - if change.Direction == remote.Direction_FORWARD { - minedTxs.Resize(uint(len(change.Txs))) - for i := range change.Txs { - minedTxs.Txs[i] = &types2.TxSlot{} - if err = f.threadSafeParseStateChangeTxn(func(parseContext *types2.TxParseContext) error { - _, err := parseContext.ParseTransaction(change.Txs[i], 0, minedTxs.Txs[i], minedTxs.Senders.At(i), false /* hasEnvelope */, false /* wrappedWithBlobs */, nil) - return err - }); err != nil && !errors.Is(err, context.Canceled) { - f.logger.Warn("stream.Recv", "err", err) - continue - } + if f.wg != nil { // to help tests + f.wg.Done() + } + } +} + +func (f *Fetch) handleStateChangesRequest(ctx context.Context, req *remote.StateChangeBatch) error { + var unwindTxs, minedTxs types2.TxSlots + for _, change := range req.ChangeBatch { + if change.Direction == remote.Direction_FORWARD { + minedTxs.Resize(uint(len(change.Txs))) + for i := range change.Txs { + minedTxs.Txs[i] = &types2.TxSlot{} + if err := f.threadSafeParseStateChangeTxn(func(parseContext *types2.TxParseContext) error { + _, err := parseContext.ParseTransaction(change.Txs[i], 0, minedTxs.Txs[i], minedTxs.Senders.At(i), false /* hasEnvelope */, false /* wrappedWithBlobs */, nil) + return err + }); err != nil && !errors.Is(err, context.Canceled) { + f.logger.Warn("[txpool.fetch] stream.Recv", "err", err) + continue // 1 tx handling error must not stop batch processing } } - if change.Direction == remote.Direction_UNWIND { - for i := range change.Txs { - if err = f.threadSafeParseStateChangeTxn(func(parseContext *types2.TxParseContext) error { - utx := &types2.TxSlot{} - sender := make([]byte, 20) - _, err2 := parseContext.ParseTransaction(change.Txs[i], 0, utx, sender, false /* hasEnvelope */, false /* wrappedWithBlobs */, nil) - if err2 != nil { - return err2 + } else if change.Direction == remote.Direction_UNWIND { + for i := range change.Txs { + if err := f.threadSafeParseStateChangeTxn(func(parseContext *types2.TxParseContext) error { + utx := &types2.TxSlot{} + sender := make([]byte, 20) + _, err := parseContext.ParseTransaction(change.Txs[i], 0, utx, sender, false /* hasEnvelope */, false /* wrappedWithBlobs */, nil) + if err != nil { + return err + } + if utx.Type == types2.BlobTxType { + var knownBlobTxn *metaTx + //TODO: don't check `KnownBlobTxn()` here - because each call require `txpool.mutex.lock()`. Better add all hashes here and do check inside `OnNewBlock` + if err := f.db.View(ctx, func(tx kv.Tx) error { + knownBlobTxn, err = f.pool.GetKnownBlobTxn(tx, utx.IDHash[:]) + return err + }); err != nil { + return err } - if utx.Type == types2.BlobTxType { - knownBlobTxn, err2 := f.pool.GetKnownBlobTxn(tx, utx.IDHash[:]) - if err2 != nil { - return err2 - } - // Get the blob tx from cache; ignore altogether if it isn't there - if knownBlobTxn != nil { - unwindTxs.Append(knownBlobTxn.Tx, sender, false) - } - } else { - unwindTxs.Append(utx, sender, false) + // Get the blob tx from cache; ignore altogether if it isn't there + if knownBlobTxn != nil { + unwindTxs.Append(knownBlobTxn.Tx, sender, false) } - return err - }); err != nil && !errors.Is(err, context.Canceled) { - f.logger.Warn("stream.Recv", "err", err) - continue + } else { + unwindTxs.Append(utx, sender, false) } + return nil + }); err != nil && !errors.Is(err, context.Canceled) { + f.logger.Warn("[txpool.fetch] stream.Recv", "err", err) + continue // 1 tx handling error must not stop batch processing } } } + } - if err := f.db.View(ctx, func(tx kv.Tx) error { - return f.pool.OnNewBlock(ctx, req, unwindTxs, minedTxs, tx) - }); err != nil && !errors.Is(err, context.Canceled) { - f.logger.Warn("onNewBlock", "err", err) - } - if f.wg != nil { - f.wg.Done() - } + if err := f.db.View(ctx, func(tx kv.Tx) error { + return f.pool.OnNewBlock(ctx, req, unwindTxs, minedTxs, tx) + }); err != nil && !errors.Is(err, context.Canceled) { + return err } + return nil } diff --git a/erigon-lib/txpool/pool.go b/erigon-lib/txpool/pool.go index 83635ee097f..0f835136b51 100644 --- a/erigon-lib/txpool/pool.go +++ b/erigon-lib/txpool/pool.go @@ -218,6 +218,8 @@ type TxPool struct { blockGasLimit atomic.Uint64 shanghaiTime *uint64 isPostShanghai atomic.Bool + agraBlock *uint64 + isPostAgra atomic.Bool cancunTime *uint64 isPostCancun atomic.Bool maxBlobsPerBlock uint64 @@ -225,7 +227,7 @@ type TxPool struct { } func New(newTxs chan types.Announcements, coreDB kv.RoDB, cfg txpoolcfg.Config, cache kvcache.Cache, - chainID uint256.Int, shanghaiTime, cancunTime *big.Int, maxBlobsPerBlock uint64, logger log.Logger, + chainID uint256.Int, shanghaiTime, agraBlock, cancunTime *big.Int, maxBlobsPerBlock uint64, logger log.Logger, ) (*TxPool, error) { localsHistory, err := simplelru.NewLRU[string, struct{}](10_000, nil) if err != nil { @@ -278,6 +280,13 @@ func New(newTxs chan types.Announcements, coreDB kv.RoDB, cfg txpoolcfg.Config, shanghaiTimeU64 := shanghaiTime.Uint64() res.shanghaiTime = &shanghaiTimeU64 } + if agraBlock != nil { + if !agraBlock.IsUint64() { + return nil, errors.New("agraBlock overflow") + } + agraBlockU64 := agraBlock.Uint64() + res.agraBlock = &agraBlockU64 + } if cancunTime != nil { if !cancunTime.IsUint64() { return nil, errors.New("cancunTime overflow") @@ -607,7 +616,7 @@ func (p *TxPool) best(n uint16, txs *types.TxsRlp, tx kv.Tx, onTopOf, availableG return false, 0, nil // Too early } - isShanghai := p.isShanghai() + isShanghai := p.isShanghai() || p.isAgra() best := p.pending.best txs.Resize(uint(cmp.Min(int(n), len(best.ms)))) @@ -727,7 +736,7 @@ func toBlobs(_blobs [][]byte) []gokzg4844.Blob { } func (p *TxPool) validateTx(txn *types.TxSlot, isLocal bool, stateCache kvcache.CacheView) txpoolcfg.DiscardReason { - isShanghai := p.isShanghai() + isShanghai := p.isShanghai() || p.isAgra() if isShanghai { if txn.DataLen > fixedgas.MaxInitCodeSize { return txpoolcfg.InitCodeTooLarge @@ -882,6 +891,42 @@ func (p *TxPool) isShanghai() bool { return activated } +func (p *TxPool) isAgra() bool { + // once this flag has been set for the first time we no longer need to check the timestamp + set := p.isPostAgra.Load() + if set { + return true + } + if p.agraBlock == nil { + return false + } + agraBlock := *p.agraBlock + + // a zero here means Agra is always active + if agraBlock == 0 { + p.isPostAgra.Swap(true) + return true + } + + tx, err := p._chainDB.BeginRo(context.Background()) + if err != nil { + return false + } + defer tx.Rollback() + + head_block, err := chain.CurrentBlockNumber(tx) + if head_block == nil || err != nil { + return false + } + // A new block is built on top of the head block, so when the head is agraBlock-1, + // the new block should use the Agra rules. + activated := (*head_block + 1) >= agraBlock + if activated { + p.isPostAgra.Swap(true) + } + return activated +} + func (p *TxPool) isCancun() bool { // once this flag has been set for the first time we no longer need to check the timestamp set := p.isPostCancun.Load() @@ -1582,6 +1627,11 @@ func promote(pending *PendingPool, baseFee, queued *SubPool, pendingBaseFee uint } } +// txMaxBroadcastSize is the max size of a transaction that will be broadcasted. +// All transactions with a higher size will be announced and need to be fetched +// by the peer. +const txMaxBroadcastSize = 4 * 1024 + // MainLoop - does: // send pending byHash to p2p: // - new byHash @@ -1680,7 +1730,8 @@ func MainLoop(ctx context.Context, db kv.RwDB, coreDB kv.RoDB, p *TxPool, newTxs localTxSizes = append(localTxSizes, size) localTxHashes = append(localTxHashes, hash...) - if t != types.BlobTxType { // "Nodes MUST NOT automatically broadcast blob transactions to their peers" - EIP-4844 + // "Nodes MUST NOT automatically broadcast blob transactions to their peers" - EIP-4844 + if t != types.BlobTxType { localTxRlps = append(localTxRlps, slotRlp) broadCastedHashes = append(broadCastedHashes, hash...) } @@ -1688,7 +1739,9 @@ func MainLoop(ctx context.Context, db kv.RwDB, coreDB kv.RoDB, p *TxPool, newTxs remoteTxTypes = append(remoteTxTypes, t) remoteTxSizes = append(remoteTxSizes, size) remoteTxHashes = append(remoteTxHashes, hash...) - if t != types.BlobTxType { // "Nodes MUST NOT automatically broadcast blob transactions to their peers" - EIP-4844 + + // "Nodes MUST NOT automatically broadcast blob transactions to their peers" - EIP-4844 + if t != types.BlobTxType && len(slotRlp) < txMaxBroadcastSize { remoteTxRlps = append(remoteTxRlps, slotRlp) } } diff --git a/erigon-lib/txpool/pool_fuzz_test.go b/erigon-lib/txpool/pool_fuzz_test.go index ebaa462f18e..e81d316910a 100644 --- a/erigon-lib/txpool/pool_fuzz_test.go +++ b/erigon-lib/txpool/pool_fuzz_test.go @@ -314,7 +314,7 @@ func FuzzOnNewBlocks(f *testing.F) { cfg := txpoolcfg.DefaultConfig sendersCache := kvcache.New(kvcache.DefaultCoherentConfig) - pool, err := New(ch, coreDB, cfg, sendersCache, *u256.N1, nil, nil, fixedgas.DefaultMaxBlobsPerBlock, log.New()) + pool, err := New(ch, coreDB, cfg, sendersCache, *u256.N1, nil, nil, nil, fixedgas.DefaultMaxBlobsPerBlock, log.New()) assert.NoError(err) pool.senders.senderIDs = senderIDs for addr, id := range senderIDs { @@ -536,7 +536,7 @@ func FuzzOnNewBlocks(f *testing.F) { check(p2pReceived, types.TxSlots{}, "after_flush") checkNotify(p2pReceived, types.TxSlots{}, "after_flush") - p2, err := New(ch, coreDB, txpoolcfg.DefaultConfig, sendersCache, *u256.N1, nil, nil, fixedgas.DefaultMaxBlobsPerBlock, log.New()) + p2, err := New(ch, coreDB, txpoolcfg.DefaultConfig, sendersCache, *u256.N1, nil, nil, nil, fixedgas.DefaultMaxBlobsPerBlock, log.New()) assert.NoError(err) p2.senders = pool.senders // senders are not persisted err = coreDB.View(ctx, func(coreTx kv.Tx) error { return p2.fromDB(ctx, tx, coreTx) }) diff --git a/erigon-lib/txpool/pool_test.go b/erigon-lib/txpool/pool_test.go index 1347beeb663..64aa1903da7 100644 --- a/erigon-lib/txpool/pool_test.go +++ b/erigon-lib/txpool/pool_test.go @@ -53,7 +53,7 @@ func TestNonceFromAddress(t *testing.T) { cfg := txpoolcfg.DefaultConfig sendersCache := kvcache.New(kvcache.DefaultCoherentConfig) - pool, err := New(ch, coreDB, cfg, sendersCache, *u256.N1, nil, nil, fixedgas.DefaultMaxBlobsPerBlock, log.New()) + pool, err := New(ch, coreDB, cfg, sendersCache, *u256.N1, nil, nil, nil, fixedgas.DefaultMaxBlobsPerBlock, log.New()) assert.NoError(err) require.True(pool != nil) ctx := context.Background() @@ -173,7 +173,7 @@ func TestReplaceWithHigherFee(t *testing.T) { cfg := txpoolcfg.DefaultConfig sendersCache := kvcache.New(kvcache.DefaultCoherentConfig) - pool, err := New(ch, coreDB, cfg, sendersCache, *u256.N1, nil, nil, fixedgas.DefaultMaxBlobsPerBlock, log.New()) + pool, err := New(ch, coreDB, cfg, sendersCache, *u256.N1, nil, nil, nil, fixedgas.DefaultMaxBlobsPerBlock, log.New()) assert.NoError(err) require.True(pool != nil) ctx := context.Background() @@ -290,7 +290,7 @@ func TestReverseNonces(t *testing.T) { cfg := txpoolcfg.DefaultConfig sendersCache := kvcache.New(kvcache.DefaultCoherentConfig) - pool, err := New(ch, coreDB, cfg, sendersCache, *u256.N1, nil, nil, fixedgas.DefaultMaxBlobsPerBlock, log.New()) + pool, err := New(ch, coreDB, cfg, sendersCache, *u256.N1, nil, nil, nil, fixedgas.DefaultMaxBlobsPerBlock, log.New()) assert.NoError(err) require.True(pool != nil) ctx := context.Background() @@ -417,7 +417,7 @@ func TestTxPoke(t *testing.T) { cfg := txpoolcfg.DefaultConfig sendersCache := kvcache.New(kvcache.DefaultCoherentConfig) - pool, err := New(ch, coreDB, cfg, sendersCache, *u256.N1, nil, nil, fixedgas.DefaultMaxBlobsPerBlock, log.New()) + pool, err := New(ch, coreDB, cfg, sendersCache, *u256.N1, nil, nil, nil, fixedgas.DefaultMaxBlobsPerBlock, log.New()) assert.NoError(err) require.True(pool != nil) ctx := context.Background() @@ -682,7 +682,7 @@ func TestShanghaiValidateTx(t *testing.T) { } cache := &kvcache.DummyCache{} - pool, err := New(ch, coreDB, cfg, cache, *u256.N1, shanghaiTime, nil /* cancunTime */, fixedgas.DefaultMaxBlobsPerBlock, logger) + pool, err := New(ch, coreDB, cfg, cache, *u256.N1, shanghaiTime, nil /* agraBlock */, nil /* cancunTime */, fixedgas.DefaultMaxBlobsPerBlock, logger) asrt.NoError(err) ctx := context.Background() tx, err := coreDB.BeginRw(ctx) @@ -728,7 +728,7 @@ func TestBlobTxReplacement(t *testing.T) { db, coreDB := memdb.NewTestPoolDB(t), memdb.NewTestDB(t) cfg := txpoolcfg.DefaultConfig sendersCache := kvcache.New(kvcache.DefaultCoherentConfig) - pool, err := New(ch, coreDB, cfg, sendersCache, *u256.N1, nil, common.Big0, fixedgas.DefaultMaxBlobsPerBlock, log.New()) + pool, err := New(ch, coreDB, cfg, sendersCache, *u256.N1, common.Big0, nil, common.Big0, fixedgas.DefaultMaxBlobsPerBlock, log.New()) assert.NoError(err) require.True(pool != nil) ctx := context.Background() diff --git a/erigon-lib/txpool/txpoolcfg/txpoolcfg.go b/erigon-lib/txpool/txpoolcfg/txpoolcfg.go index c929b22402c..31616c0807a 100644 --- a/erigon-lib/txpool/txpoolcfg/txpoolcfg.go +++ b/erigon-lib/txpool/txpoolcfg/txpoolcfg.go @@ -29,24 +29,28 @@ import ( ) type Config struct { - DBDir string - TracedSenders []string // List of senders for which tx pool should print out debugging info + DBDir string + TracedSenders []string // List of senders for which tx pool should print out debugging info + PendingSubPoolLimit int + BaseFeeSubPoolLimit int + QueuedSubPoolLimit int + MinFeeCap uint64 + AccountSlots uint64 // Number of executable transaction slots guaranteed per account + BlobSlots uint64 // Total number of blobs (not txs) allowed per account + PriceBump uint64 // Price bump percentage to replace an already existing transaction + BlobPriceBump uint64 //Price bump percentage to replace an existing 4844 blob tx (type-3) + OverrideCancunTime *big.Int + + // regular batch tasks processing SyncToNewPeersEvery time.Duration ProcessRemoteTxsEvery time.Duration CommitEvery time.Duration LogEvery time.Duration - PendingSubPoolLimit int - BaseFeeSubPoolLimit int - QueuedSubPoolLimit int - MinFeeCap uint64 - AccountSlots uint64 // Number of executable transaction slots guaranteed per account - BlobSlots uint64 // Total number of blobs (not txs) allowed per account - PriceBump uint64 // Price bump percentage to replace an already existing transaction - BlobPriceBump uint64 //Price bump percentage to replace an existing 4844 blob tx (type-3) - OverrideCancunTime *big.Int - MdbxPageSize datasize.ByteSize - MdbxDBSizeLimit datasize.ByteSize - MdbxGrowthStep datasize.ByteSize + + //txpool db + MdbxPageSize datasize.ByteSize + MdbxDBSizeLimit datasize.ByteSize + MdbxGrowthStep datasize.ByteSize } var DefaultConfig = Config{ diff --git a/erigon-lib/txpool/txpooluitl/all_components.go b/erigon-lib/txpool/txpooluitl/all_components.go index b15c78e7225..b67381f1c58 100644 --- a/erigon-lib/txpool/txpooluitl/all_components.go +++ b/erigon-lib/txpool/txpooluitl/all_components.go @@ -19,10 +19,10 @@ package txpooluitl import ( "context" "fmt" + "math/big" "time" "github.com/c2h5oh/datasize" - mdbx2 "github.com/erigontech/mdbx-go/mdbx" "github.com/holiman/uint256" "github.com/ledgerwatch/log/v3" @@ -104,7 +104,6 @@ func AllComponents(ctx context.Context, cfg txpoolcfg.Config, cache kvcache.Cach sentryClients []direct.SentryClient, stateChangesClient txpool.StateChangesClient, logger log.Logger) (kv.RwDB, *txpool.TxPool, *txpool.Fetch, *txpool.Send, *txpool.GrpcServer, error) { opts := mdbx.NewMDBX(log.New()).Label(kv.TxPoolDB).Path(cfg.DBDir). WithTableCfg(func(defaultBuckets kv.TableCfg) kv.TableCfg { return kv.TxpoolTablesCfg }). - Flags(func(f uint) uint { return f ^ mdbx2.Durable }). WriteMergeThreshold(3 * 8192). PageSize(uint64(16 * datasize.KB)). GrowthStep(16 * datasize.MB). @@ -135,12 +134,16 @@ func AllComponents(ctx context.Context, cfg txpoolcfg.Config, cache kvcache.Cach maxBlobsPerBlock := chainConfig.GetMaxBlobsPerBlock() shanghaiTime := chainConfig.ShanghaiTime + var agraBlock *big.Int + if chainConfig.Bor != nil { + agraBlock = chainConfig.Bor.AgraBlock + } cancunTime := chainConfig.CancunTime if cfg.OverrideCancunTime != nil { cancunTime = cfg.OverrideCancunTime } - txPool, err := txpool.New(newTxs, chainDB, cfg, cache, *chainID, shanghaiTime, cancunTime, maxBlobsPerBlock, logger) + txPool, err := txpool.New(newTxs, chainDB, cfg, cache, *chainID, shanghaiTime, agraBlock, cancunTime, maxBlobsPerBlock, logger) if err != nil { return nil, nil, nil, nil, nil, err } diff --git a/erigon-lib/types/txn.go b/erigon-lib/types/txn.go index fc0b538c61b..d7f96d78146 100644 --- a/erigon-lib/types/txn.go +++ b/erigon-lib/types/txn.go @@ -100,7 +100,7 @@ type TxSlot struct { Traced bool // Whether transaction needs to be traced throughout transaction pool code and generate debug printing Creation bool // Set to true if "To" field of the transaction is not set Type byte // Transaction type - Size uint32 // Size of the payload + Size uint32 // Size of the payload (without the RLP string envelope for typed transactions) // EIP-4844: Shard Blob Transactions BlobFeeCap uint256.Int // max_fee_per_blob_gas @@ -286,7 +286,8 @@ func (ctx *TxParseContext) ParseTransaction(payload []byte, pos int, slot *TxSlo } } - slot.Size = uint32(p - pos) + slot.Size = uint32(len(slot.Rlp)) + return p, err } diff --git a/erigon-lib/types/txn_test.go b/erigon-lib/types/txn_test.go index b5e992d493f..9d71a545e5b 100644 --- a/erigon-lib/types/txn_test.go +++ b/erigon-lib/types/txn_test.go @@ -194,7 +194,10 @@ func TestBlobTxParsing(t *testing.T) { bodyRlp := hexutility.MustDecodeHex(bodyRlpHex) hasEnvelope := true - bodyEnvelope := hexutility.MustDecodeHex("b9012b03") + bodyEnvelopePrefix := hexutility.MustDecodeHex("b9012b") + var bodyEnvelope []byte + bodyEnvelope = append(bodyEnvelope, bodyEnvelopePrefix...) + bodyEnvelope = append(bodyEnvelope, BlobTxType) bodyEnvelope = append(bodyEnvelope, bodyRlp...) ctx := NewTxParseContext(*uint256.NewInt(5)) @@ -208,7 +211,7 @@ func TestBlobTxParsing(t *testing.T) { p, err := ctx.ParseTransaction(bodyEnvelope, 0, &thinTx, nil, hasEnvelope, wrappedWithBlobs, nil) require.NoError(t, err) assert.Equal(t, len(bodyEnvelope), p) - assert.Equal(t, len(bodyEnvelope), int(thinTx.Size)) + assert.Equal(t, len(bodyEnvelope)-len(bodyEnvelopePrefix), int(thinTx.Size)) assert.Equal(t, bodyEnvelope[3:], thinTx.Rlp) assert.Equal(t, BlobTxType, thinTx.Type) assert.Equal(t, 2, len(thinTx.BlobHashes)) diff --git a/eth/backend.go b/eth/backend.go index 9999e89d748..023b967eecd 100644 --- a/eth/backend.go +++ b/eth/backend.go @@ -31,6 +31,8 @@ import ( "sync" "time" + "github.com/ledgerwatch/erigon-lib/chain/networkname" + "github.com/ledgerwatch/erigon-lib/diagnostics" "github.com/ledgerwatch/erigon-lib/downloader/downloadergrpc" "github.com/ledgerwatch/erigon-lib/kv/kvcfg" "github.com/ledgerwatch/erigon/cl/beacon" @@ -38,10 +40,15 @@ import ( "github.com/ledgerwatch/erigon/cl/cltypes" "github.com/ledgerwatch/erigon/cl/fork" "github.com/ledgerwatch/erigon/cl/persistence" + clcore "github.com/ledgerwatch/erigon/cl/phase1/core" "github.com/ledgerwatch/erigon/cl/phase1/execution_client" + "github.com/ledgerwatch/erigon/cl/sentinel" + "github.com/ledgerwatch/erigon/cl/sentinel/service" + "github.com/ledgerwatch/erigon/core/rawdb/blockio" "github.com/ledgerwatch/erigon/ethdb/prune" - "github.com/ledgerwatch/erigon/params/networkname" + "github.com/ledgerwatch/erigon/p2p/sentry" + "github.com/ledgerwatch/erigon/p2p/sentry/sentry_multi_client" "github.com/ledgerwatch/erigon/turbo/builder" "github.com/ledgerwatch/erigon/turbo/engineapi" "github.com/ledgerwatch/erigon/turbo/engineapi/engine_block_downloader" @@ -63,7 +70,6 @@ import ( "github.com/ledgerwatch/erigon-lib/chain" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/datadir" - "github.com/ledgerwatch/erigon-lib/common/dir" "github.com/ledgerwatch/erigon-lib/direct" downloader3 "github.com/ledgerwatch/erigon-lib/downloader" "github.com/ledgerwatch/erigon-lib/downloader/downloadercfg" @@ -81,14 +87,11 @@ import ( "github.com/ledgerwatch/erigon-lib/txpool/txpooluitl" types2 "github.com/ledgerwatch/erigon-lib/types" - clcore "github.com/ledgerwatch/erigon/cl/phase1/core" - "github.com/ledgerwatch/erigon/cmd/caplin-phase1/caplin1" + "github.com/ledgerwatch/erigon/cmd/caplin/caplin1" "github.com/ledgerwatch/erigon/cmd/rpcdaemon/cli" - "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel" - "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel/service" - "github.com/ledgerwatch/erigon/cmd/sentry/sentry" "github.com/ledgerwatch/erigon/common/debug" + rpcsentinel "github.com/ledgerwatch/erigon-lib/gointerfaces/sentinel" "github.com/ledgerwatch/erigon/consensus" "github.com/ledgerwatch/erigon/consensus/bor" "github.com/ledgerwatch/erigon/consensus/bor/finality/flags" @@ -164,7 +167,7 @@ type Ethereum struct { // downloader fields sentryCtx context.Context sentryCancel context.CancelFunc - sentriesClient *sentry.MultiClient + sentriesClient *sentry_multi_client.MultiClient sentryServers []*sentry.GrpcServer stagedSync *stagedsync.Sync @@ -198,7 +201,11 @@ type Ethereum struct { kvRPC *remotedbserver.KvServer logger log.Logger - silkworm *silkworm.Silkworm + sentinel rpcsentinel.SentinelClient + + silkworm *silkworm.Silkworm + silkwormRPCDaemonService *silkworm.RpcDaemonService + silkwormSentryService *silkworm.SentryService } func splitAddrIntoHostAndPort(addr string) (host string, port int, err error) { @@ -284,11 +291,9 @@ func New(ctx context.Context, stack *node.Node, config *ethconfig.Config, logger logger: logger, } - // Check if we have an already initialized chain and fall back to - // that if so. Otherwise we need to generate a new genesis spec. var chainConfig *chain.Config var genesis *types.Block - if err := chainKv.Update(context.Background(), func(tx kv.RwTx) error { + if err := backend.chainDB.Update(context.Background(), func(tx kv.RwTx) error { h, err := rawdb.ReadCanonicalHash(tx, 0) if err != nil { panic(err) @@ -307,46 +312,88 @@ func New(ctx context.Context, stack *node.Node, config *ethconfig.Config, logger }); err != nil { panic(err) } - - blockReader, blockWriter, allSnapshots, agg, err := setUpBlockReader(ctx, chainKv, config.Dirs, config.Snapshot, config.HistoryV3, chainConfig.Bor != nil, logger) - if err != nil { - return nil, err - } - backend.agg, backend.blockSnapshots, backend.blockReader, backend.blockWriter = agg, allSnapshots, blockReader, blockWriter - backend.chainConfig = chainConfig backend.genesisBlock = genesis backend.genesisHash = genesis.Hash() logger.Info("Initialised chain configuration", "config", chainConfig, "genesis", genesis.Hash()) - if err := backend.setUpSnapDownloader(ctx, config.Downloader); err != nil { + // Check if we have an already initialized chain and fall back to + // that if so. Otherwise we need to generate a new genesis spec. + blockReader, blockWriter, allSnapshots, agg, err := setUpBlockReader(ctx, chainKv, config.Dirs, config.Snapshot, config.HistoryV3, chainConfig.Bor != nil, logger) + if err != nil { return nil, err } + backend.agg, backend.blockSnapshots, backend.blockReader, backend.blockWriter = agg, allSnapshots, blockReader, blockWriter if config.HistoryV3 { - backend.chainDB, err = temporal.New(backend.chainDB, agg, systemcontracts.SystemContractCodeLookup[chainConfig.ChainName]) + backend.chainDB, err = temporal.New(backend.chainDB, agg, systemcontracts.SystemContractCodeLookup[config.Genesis.Config.ChainName]) if err != nil { return nil, err } - chainKv = backend.chainDB + chainKv = backend.chainDB //nolint + } + + if err := backend.setUpSnapDownloader(ctx, config.Downloader); err != nil { + return nil, err } - kvRPC := remotedbserver.NewKvServer(ctx, chainKv, allSnapshots, agg, logger) + kvRPC := remotedbserver.NewKvServer(ctx, backend.chainDB, allSnapshots, agg, logger) backend.notifications.StateChangesConsumer = kvRPC backend.kvRPC = kvRPC backend.gasPrice, _ = uint256.FromBig(config.Miner.GasPrice) + if config.SilkwormPath != "" { + backend.silkworm, err = silkworm.New(config.SilkwormPath, config.Dirs.DataDir) + if err != nil { + return nil, err + } + } + var sentries []direct.SentryClient if len(stack.Config().P2P.SentryAddr) > 0 { for _, addr := range stack.Config().P2P.SentryAddr { - sentryClient, err := sentry.GrpcClient(backend.sentryCtx, addr) + sentryClient, err := sentry_multi_client.GrpcClient(backend.sentryCtx, addr) if err != nil { return nil, err } sentries = append(sentries, sentryClient) } + } else if config.SilkwormSentry { + apiPort := 53774 + apiAddr := fmt.Sprintf("127.0.0.1:%d", apiPort) + p2pConfig := stack.Config().P2P + + collectNodeURLs := func(nodes []*enode.Node) []string { + var urls []string + for _, n := range nodes { + urls = append(urls, n.URLv4()) + } + return urls + } + + settings := silkworm.SentrySettings{ + ClientId: p2pConfig.Name, + ApiPort: apiPort, + Port: p2pConfig.ListenPort(), + Nat: p2pConfig.NATSpec, + NetworkId: config.NetworkID, + NodeKey: crypto.FromECDSA(p2pConfig.PrivateKey), + StaticPeers: collectNodeURLs(p2pConfig.StaticNodes), + Bootnodes: collectNodeURLs(p2pConfig.BootstrapNodes), + NoDiscover: p2pConfig.NoDiscovery, + MaxPeers: p2pConfig.MaxPeers, + } + + silkwormSentryService := backend.silkworm.NewSentryService(settings) + backend.silkwormSentryService = &silkwormSentryService + + sentryClient, err := sentry_multi_client.GrpcClient(backend.sentryCtx, apiAddr) + if err != nil { + return nil, err + } + sentries = append(sentries, sentryClient) } else { var readNodeInfo = func() *eth.NodeInfo { var res *eth.NodeInfo @@ -477,13 +524,6 @@ func New(ctx context.Context, stack *node.Node, config *ethconfig.Config, logger backend.engine = ethconsensusconfig.CreateConsensusEngine(ctx, stack.Config(), chainConfig, consensusConfig, config.Miner.Notify, config.Miner.Noverify, heimdallClient, config.WithoutHeimdall, blockReader, false /* readonly */, logger) - if config.SilkwormEnabled { - backend.silkworm, err = silkworm.New(config.SilkwormPath) - if err != nil { - return nil, err - } - } - inMemoryExecution := func(batch kv.RwTx, header *types.Header, body *types.RawBody, unwindPoint uint64, headersChain []*types.Header, bodiesChain []*types.RawBody, notifications *shards.Notifications) error { terseLogger := log.New() @@ -528,7 +568,7 @@ func New(ctx context.Context, stack *node.Node, config *ethconfig.Config, logger } } - backend.sentriesClient, err = sentry.NewMultiClient( + backend.sentriesClient, err = sentry_multi_client.NewMultiClient( chainKv, stack.Config().NodeName(), chainConfig, @@ -799,7 +839,15 @@ func New(ctx context.Context, stack *node.Node, config *ethconfig.Config, logger if err != nil { return nil, err } - go caplin1.RunCaplinPhase1(ctx, client, engine, beaconCfg, genesisCfg, state, nil, dirs, beacon.RouterConfiguration{Active: false}) + + backend.sentinel = client + + go func() { + if err := caplin1.RunCaplinPhase1(ctx, client, engine, beaconCfg, genesisCfg, state, nil, dirs, beacon.RouterConfiguration{Active: false}); err != nil { + logger.Error("could not start caplin", "err", err) + } + ctxCancel() + }() } return backend, nil @@ -853,12 +901,17 @@ func (s *Ethereum) Init(stack *node.Node, config *ethconfig.Config) error { } s.apiList = jsonrpc.APIList(chainKv, ethRpcClient, txPoolRpcClient, miningRpcClient, ff, stateCache, blockReader, s.agg, httpRpcCfg, s.engine, s.logger) - go func() { - if err := cli.StartRpcServer(ctx, httpRpcCfg, s.apiList, s.logger); err != nil { - s.logger.Error(err.Error()) - return - } - }() + + if config.SilkwormRpcDaemon && httpRpcCfg.Enabled { + silkwormRPCDaemonService := s.silkworm.NewRpcDaemonService(chainKv) + s.silkwormRPCDaemonService = &silkwormRPCDaemonService + } else { + go func() { + if err := cli.StartRpcServer(ctx, httpRpcCfg, s.apiList, s.logger); err != nil { + s.logger.Error("cli.StartRpcServer error", "err", err) + } + }() + } go s.engineBackendRPC.Start(httpRpcCfg, s.chainDB, s.blockReader, ff, stateCache, s.agg, s.engine, ethRpcClient, txPoolRpcClient, miningRpcClient) @@ -1115,7 +1168,7 @@ func (s *Ethereum) setUpSnapDownloader(ctx context.Context, downloaderCfg *downl s.downloaderClient, err = downloadergrpc.NewClient(ctx, s.config.Snapshot.DownloaderAddr) } else { // start embedded Downloader - s.downloader, err = downloader3.New(ctx, downloaderCfg, s.logger, log.LvlInfo) + s.downloader, err = downloader3.New(ctx, downloaderCfg, s.config.Dirs, s.logger, log.LvlDebug) if err != nil { return err } @@ -1161,7 +1214,6 @@ func setUpBlockReader(ctx context.Context, db kv.RwDB, dirs datadir.Dirs, snConf blockReader := freezeblocks.NewBlockReader(allSnapshots, allBorSnapshots) blockWriter := blockio.NewBlockWriter(histV3) - dir.MustExist(dirs.SnapHistory) agg, err := libstate.NewAggregatorV3(ctx, dirs.SnapHistory, dirs.Tmp, ethconfig.HistoryV3AggregationStep, db, logger) if err != nil { return nil, nil, nil, nil, err @@ -1181,9 +1233,23 @@ func (s *Ethereum) Peers(ctx context.Context) (*remote.PeersReply, error) { } reply.Peers = append(reply.Peers, peers.Peers...) } + return &reply, nil } +func (s *Ethereum) DiagnosticsPeersData() map[string]*diagnostics.PeerStatistics { + var reply map[string]*diagnostics.PeerStatistics = make(map[string]*diagnostics.PeerStatistics) + for _, sentryServer := range s.sentryServers { + peers := sentryServer.DiagnosticsPeersData() + + for key, value := range peers { + reply[key] = value + } + } + + return reply +} + func (s *Ethereum) AddPeer(ctx context.Context, req *remote.AddPeerRequest) (*remote.AddPeerReply, error) { for _, sentryClient := range s.sentriesClient.Sentries() { _, err := sentryClient.AddPeer(ctx, &proto_sentry.AddPeerRequest{Url: req.Url}) @@ -1231,6 +1297,17 @@ func (s *Ethereum) Start() error { s.engine.(*bor.Bor).Start(s.chainDB) } + if s.silkwormRPCDaemonService != nil { + if err := s.silkwormRPCDaemonService.Start(); err != nil { + s.logger.Error("silkworm.StartRpcDaemon error", "err", err) + } + } + if s.silkwormSentryService != nil { + if err := s.silkwormSentryService.Start(); err != nil { + s.logger.Error("silkworm.SentryStart error", "err", err) + } + } + return nil } @@ -1276,7 +1353,17 @@ func (s *Ethereum) Stop() error { } s.chainDB.Close() - if s.config.SilkwormEnabled { + if s.silkwormRPCDaemonService != nil { + if err := s.silkwormRPCDaemonService.Stop(); err != nil { + s.logger.Error("silkworm.StopRpcDaemon error", "err", err) + } + } + if s.silkwormSentryService != nil { + if err := s.silkwormSentryService.Stop(); err != nil { + s.logger.Error("silkworm.SentryStop error", "err", err) + } + } + if s.silkworm != nil { s.silkworm.Close() } @@ -1303,7 +1390,7 @@ func (s *Ethereum) SentryCtx() context.Context { return s.sentryCtx } -func (s *Ethereum) SentryControlServer() *sentry.MultiClient { +func (s *Ethereum) SentryControlServer() *sentry_multi_client.MultiClient { return s.sentriesClient } func (s *Ethereum) BlockIO() (services.FullBlockReader, *blockio.BlockWriter) { @@ -1365,3 +1452,7 @@ func readCurrentTotalDifficulty(ctx context.Context, db kv.RwDB, blockReader ser }) return currentTD, err } + +func (s *Ethereum) Sentinel() rpcsentinel.SentinelClient { + return s.sentinel +} diff --git a/eth/ethconfig/config.go b/eth/ethconfig/config.go index 544437f557d..fe0000506eb 100644 --- a/eth/ethconfig/config.go +++ b/eth/ethconfig/config.go @@ -28,6 +28,7 @@ import ( "github.com/c2h5oh/datasize" "github.com/ledgerwatch/erigon-lib/chain" + "github.com/ledgerwatch/erigon-lib/chain/networkname" "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/datadir" "github.com/ledgerwatch/erigon-lib/downloader/downloadercfg" @@ -39,7 +40,6 @@ import ( "github.com/ledgerwatch/erigon/eth/gasprice/gaspricecfg" "github.com/ledgerwatch/erigon/ethdb/prune" "github.com/ledgerwatch/erigon/params" - "github.com/ledgerwatch/erigon/params/networkname" ) // AggregationStep number of transactions in smallest static file @@ -102,7 +102,8 @@ var Defaults = Config{ Produce: true, }, - SilkwormEnabled: false, + // applies if SilkwormPath is set + SilkwormExecution: true, } func init() { @@ -178,8 +179,6 @@ type Config struct { // for nodes to connect to. EthDiscoveryURLs []string - P2PEnabled bool - Prune prune.Mode BatchSize datasize.ByteSize // Batch size for execution stage @@ -253,8 +252,10 @@ type Config struct { ForcePartialCommit bool // Embedded Silkworm support - SilkwormEnabled bool - SilkwormPath string + SilkwormPath string + SilkwormExecution bool + SilkwormRpcDaemon bool + SilkwormSentry bool } type Sync struct { diff --git a/eth/ethconfig/estimate/esitmated_ram.go b/eth/ethconfig/estimate/esitmated_ram.go index 573be06b861..cc8bd0bbb94 100644 --- a/eth/ethconfig/estimate/esitmated_ram.go +++ b/eth/ethconfig/estimate/esitmated_ram.go @@ -1,13 +1,10 @@ package estimate import ( - "os" - "runtime" - "github.com/c2h5oh/datasize" "github.com/ledgerwatch/erigon-lib/common/cmp" - "github.com/pbnjay/memory" - "github.com/shirou/gopsutil/v3/docker" + "github.com/ledgerwatch/erigon-lib/mmap" + "runtime" ) type estimatedRamPerWorker datasize.ByteSize @@ -15,9 +12,10 @@ type estimatedRamPerWorker datasize.ByteSize // Workers - return max workers amount based on total Memory/CPU's and estimated RAM per worker func (r estimatedRamPerWorker) Workers() int { // 50% of TotalMemory. Better don't count on 100% because OOM Killer may have aggressive defaults and other software may need RAM - maxWorkersForGivenMemory := (totalMemory() / 2) / uint64(r) + maxWorkersForGivenMemory := (mmap.TotalMemory() / 2) / uint64(r) return cmp.Min(AlmostAllCPUs(), int(maxWorkersForGivenMemory)) } + func (r estimatedRamPerWorker) WorkersHalf() int { return cmp.Max(1, r.Workers()/2) } func (r estimatedRamPerWorker) WorkersQuarter() int { return cmp.Max(1, r.Workers()/4) } @@ -32,29 +30,3 @@ const ( func AlmostAllCPUs() int { return cmp.Max(1, runtime.GOMAXPROCS(-1)-1) } -func totalMemory() uint64 { - mem := memory.TotalMemory() - - if cgroupsMemLimit, ok := cgroupsMemoryLimit(); ok { - mem = cmp.Min(mem, cgroupsMemLimit) - } - - return mem -} - -// apply limit from docker if can, treat errors as "not available or maybe non-docker environment -// supports only cgroups v1, for v2 see: https://github.com/shirou/gopsutil/issues/1416 -func cgroupsMemoryLimit() (mem uint64, ok bool) { - hostname, err := os.Hostname() - if err != nil { - return 0, false - } - cgmem, err := docker.CgroupMemDocker(hostname) - if err != nil { - return 0, false - } - if cgmem == nil || cgmem.MemLimitInBytes <= 0 { - return 0, false - } - return cgmem.MemLimitInBytes, true -} diff --git a/eth/ethconfig/gen_config.go b/eth/ethconfig/gen_config.go index 5d9db0e26cb..f5432c115b4 100644 --- a/eth/ethconfig/gen_config.go +++ b/eth/ethconfig/gen_config.go @@ -22,7 +22,6 @@ func (c Config) MarshalTOML() (interface{}, error) { Genesis *types.Genesis `toml:",omitempty"` NetworkID uint64 EthDiscoveryURLs []string - P2PEnabled bool Prune prune.Mode BatchSize datasize.ByteSize ImportMode bool @@ -47,7 +46,6 @@ func (c Config) MarshalTOML() (interface{}, error) { enc.Genesis = c.Genesis enc.NetworkID = c.NetworkID enc.EthDiscoveryURLs = c.EthDiscoveryURLs - enc.P2PEnabled = c.P2PEnabled enc.Prune = c.Prune enc.BatchSize = c.BatchSize enc.ImportMode = c.ImportMode @@ -73,7 +71,6 @@ func (c *Config) UnmarshalTOML(unmarshal func(interface{}) error) error { Genesis *types.Genesis `toml:",omitempty"` NetworkID *uint64 EthDiscoveryURLs []string - P2PEnabled *bool Prune *prune.Mode BatchSize *datasize.ByteSize ImportMode *bool @@ -107,9 +104,6 @@ func (c *Config) UnmarshalTOML(unmarshal func(interface{}) error) error { if dec.EthDiscoveryURLs != nil { c.EthDiscoveryURLs = dec.EthDiscoveryURLs } - if dec.P2PEnabled != nil { - c.P2PEnabled = *dec.P2PEnabled - } if dec.Prune != nil { c.Prune = *dec.Prune } diff --git a/eth/filters/api.go b/eth/filters/api.go index a0c0ad7e48a..c8059b02d7c 100644 --- a/eth/filters/api.go +++ b/eth/filters/api.go @@ -20,13 +20,13 @@ import ( "encoding/json" "errors" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "math/big" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/length" ethereum "github.com/ledgerwatch/erigon" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/rpc" ) diff --git a/eth/integrity/no_gaps_in_canonical_headers.go b/eth/integrity/no_gaps_in_canonical_headers.go new file mode 100644 index 00000000000..b5900e10e69 --- /dev/null +++ b/eth/integrity/no_gaps_in_canonical_headers.go @@ -0,0 +1,59 @@ +package integrity + +import ( + "context" + "fmt" + "time" + + "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon/core/rawdb" + "github.com/ledgerwatch/erigon/eth/stagedsync/stages" + "github.com/ledgerwatch/erigon/turbo/services" + "github.com/ledgerwatch/erigon/turbo/snapshotsync/freezeblocks" + "github.com/ledgerwatch/log/v3" +) + +func NoGapsInCanonicalHeaders(tx kv.Tx, ctx context.Context, br services.BlockReader) { + logEvery := time.NewTicker(10 * time.Second) + defer logEvery.Stop() + + if err := br.(*freezeblocks.BlockReader).Integrity(ctx); err != nil { + panic(err) + } + + firstBlockInDB := br.(*freezeblocks.BlockReader).FrozenBlocks() + 1 + lastBlockNum, err := stages.GetStageProgress(tx, stages.Headers) + if err != nil { + panic(err) + } + + for i := firstBlockInDB; i < lastBlockNum; i++ { + hash, err := rawdb.ReadCanonicalHash(tx, i) + if err != nil { + panic(err) + } + if hash == (common.Hash{}) { + err = fmt.Errorf("canonical marker not found: %d\n", i) + panic(err) + } + header := rawdb.ReadHeader(tx, hash, i) + if header == nil { + err = fmt.Errorf("header not found: %d\n", i) + panic(err) + } + body, _, _ := rawdb.ReadBody(tx, hash, i) + if body == nil { + err = fmt.Errorf("header not found: %d\n", i) + panic(err) + } + + select { + case <-ctx.Done(): + return + case <-logEvery.C: + log.Info("[integrity] NoGapsInCanonicalHeaders", "progress", fmt.Sprintf("%dK/%dK", i/1000, lastBlockNum/1000)) + default: + } + } +} diff --git a/eth/integrity/trie.go b/eth/integrity/trie.go index 92f4a48200f..ac6b1c7c9e6 100644 --- a/eth/integrity/trie.go +++ b/eth/integrity/trie.go @@ -6,13 +6,13 @@ import ( "encoding/binary" "encoding/hex" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "math/bits" "sync/atomic" "time" "github.com/ledgerwatch/erigon-lib/common/length" "github.com/ledgerwatch/erigon-lib/kv" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/common/math" "github.com/ledgerwatch/erigon/ethdb" "github.com/ledgerwatch/erigon/turbo/trie" diff --git a/eth/protocols/eth/protocol.go b/eth/protocols/eth/protocol.go index d55f4b5b61e..1818bf25879 100644 --- a/eth/protocols/eth/protocol.go +++ b/eth/protocols/eth/protocol.go @@ -20,11 +20,11 @@ import ( "fmt" "io" "math/big" - "math/bits" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/direct" proto_sentry "github.com/ledgerwatch/erigon-lib/gointerfaces/sentry" + rlp2 "github.com/ledgerwatch/erigon-lib/rlp" "github.com/ledgerwatch/erigon/core/forkid" "github.com/ledgerwatch/erigon/core/types" @@ -250,12 +250,8 @@ type NewBlockPacket struct { func (nbp NewBlockPacket) EncodeRLP(w io.Writer) error { encodingSize := 0 // size of Block - encodingSize++ blockLen := nbp.Block.EncodingSize() - if blockLen >= 56 { - encodingSize += libcommon.BitLenToByteLen(bits.Len(uint(blockLen))) - } - encodingSize += blockLen + encodingSize += rlp2.ListPrefixLen(blockLen) + blockLen // size of TD encodingSize++ var tdBitLen, tdLen int diff --git a/eth/stagedsync/all_stages.go b/eth/stagedsync/all_stages.go index 24ea7b8f92d..9b2ae7d1d98 100644 --- a/eth/stagedsync/all_stages.go +++ b/eth/stagedsync/all_stages.go @@ -2,11 +2,11 @@ package stagedsync import ( "fmt" + "github.com/ledgerwatch/erigon-lib/metrics" "github.com/huandu/xstrings" "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/erigon/eth/stagedsync/stages" - "github.com/ledgerwatch/erigon/metrics" ) var syncMetrics = map[stages.SyncStage]metrics.Counter{} diff --git a/eth/stagedsync/stage_execute.go b/eth/stagedsync/stage_execute.go index ab602b84119..26e1b76cb4f 100644 --- a/eth/stagedsync/stage_execute.go +++ b/eth/stagedsync/stage_execute.go @@ -5,12 +5,14 @@ import ( "encoding/binary" "errors" "fmt" + "github.com/ledgerwatch/erigon-lib/kv/dbutils" "os" "runtime" "time" "github.com/c2h5oh/datasize" "github.com/ledgerwatch/erigon-lib/kv/membatch" + "github.com/ledgerwatch/erigon-lib/kv/membatchwithdb" "github.com/ledgerwatch/log/v3" "golang.org/x/sync/errgroup" @@ -28,7 +30,6 @@ import ( libstate "github.com/ledgerwatch/erigon-lib/state" "github.com/ledgerwatch/erigon/common/changeset" - "github.com/ledgerwatch/erigon/common/dbutils" "github.com/ledgerwatch/erigon/common/math" "github.com/ledgerwatch/erigon/consensus" "github.com/ledgerwatch/erigon/core" @@ -465,7 +466,8 @@ Loop: writeReceipts := nextStagesExpectData || blockNum > cfg.prune.Receipts.PruneTo(to) writeCallTraces := nextStagesExpectData || blockNum > cfg.prune.CallTraces.PruneTo(to) - if cfg.silkworm != nil { + _, is_memory_mutation := tx.(*membatchwithdb.MemoryMutation) + if cfg.silkworm != nil && !is_memory_mutation { blockNum, err = cfg.silkworm.ExecuteBlocks(tx, cfg.chainConfig.ChainID, blockNum, to, uint64(cfg.batchSize), writeChangeSets, writeReceipts, writeCallTraces) } else { err = executeBlock(block, tx, batch, cfg, *cfg.vmConfig, writeChangeSets, writeReceipts, writeCallTraces, initialCycle, stateStream, logger) @@ -616,6 +618,8 @@ func blocksReadAheadFunc(ctx context.Context, tx kv.Tx, cfg *ExecuteBlockCfg, bl if block == nil { return nil } + _, _ = cfg.engine.Author(block.HeaderNoCopy()) // Bor consensus: this calc is heavy and has cache + senders := block.Body().SendersFromTxs() //TODO: BlockByNumber can return senders stateReader := state.NewPlainStateReader(tx) //TODO: can do on batch! if make batch thread-safe for _, sender := range senders { diff --git a/eth/stagedsync/stage_finish.go b/eth/stagedsync/stage_finish.go index 39bdd191cc1..9a96e47f0e0 100644 --- a/eth/stagedsync/stage_finish.go +++ b/eth/stagedsync/stage_finish.go @@ -5,6 +5,7 @@ import ( "context" "encoding/binary" "fmt" + "github.com/ledgerwatch/erigon-lib/kv/dbutils" "time" libcommon "github.com/ledgerwatch/erigon-lib/common" @@ -17,8 +18,6 @@ import ( "github.com/ledgerwatch/erigon/turbo/services" "github.com/ledgerwatch/log/v3" - common2 "github.com/ledgerwatch/erigon/common" - "github.com/ledgerwatch/erigon/common/dbutils" "github.com/ledgerwatch/erigon/core/rawdb" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/ethdb/cbor" @@ -161,7 +160,7 @@ func NotifyNewHeaders(ctx context.Context, finishStageBeforeSync uint64, finishS headerHash := libcommon.BytesToHash(k[8:]) if notifyToHash == headerHash { - headersRlp = append(headersRlp, common2.CopyBytes(headerRLP)) + headersRlp = append(headersRlp, libcommon.CopyBytes(headerRLP)) } return libcommon.Stopped(ctx.Done()) diff --git a/eth/stagedsync/stage_hashstate.go b/eth/stagedsync/stage_hashstate.go index 64231c2179c..823eee4b3d5 100644 --- a/eth/stagedsync/stage_hashstate.go +++ b/eth/stagedsync/stage_hashstate.go @@ -7,6 +7,7 @@ import ( "encoding/hex" "errors" "fmt" + "github.com/ledgerwatch/erigon-lib/kv/dbutils" "runtime" "time" @@ -23,8 +24,6 @@ import ( "github.com/ledgerwatch/log/v3" "golang.org/x/sync/errgroup" - "github.com/ledgerwatch/erigon/common" - "github.com/ledgerwatch/erigon/common/dbutils" "github.com/ledgerwatch/erigon/common/math" "github.com/ledgerwatch/erigon/core/types/accounts" "github.com/ledgerwatch/erigon/eth/ethconfig/estimate" @@ -340,16 +339,16 @@ func transformPlainStateKey(key []byte) ([]byte, error) { switch len(key) { case length.Addr: // account - hash, err := common.HashData(key) + hash, err := libcommon.HashData(key) return hash[:], err case length.Addr + length.Incarnation + length.Hash: // storage - addrHash, err := common.HashData(key[:length.Addr]) + addrHash, err := libcommon.HashData(key[:length.Addr]) if err != nil { return nil, err } inc := binary.BigEndian.Uint64(key[length.Addr:]) - secKey, err := common.HashData(key[length.Addr+length.Incarnation:]) + secKey, err := libcommon.HashData(key[length.Addr+length.Incarnation:]) if err != nil { return nil, err } @@ -367,7 +366,7 @@ func transformContractCodeKey(key []byte) ([]byte, error) { } address, incarnation := dbutils.PlainParseStoragePrefix(key) - addrHash, err := common.HashData(address[:]) + addrHash, err := libcommon.HashData(address[:]) if err != nil { return nil, err } diff --git a/eth/stagedsync/stage_indexes.go b/eth/stagedsync/stage_indexes.go index 383b01d61b9..8aeb4e6bcd4 100644 --- a/eth/stagedsync/stage_indexes.go +++ b/eth/stagedsync/stage_indexes.go @@ -7,6 +7,7 @@ import ( "encoding/hex" "errors" "fmt" + "github.com/ledgerwatch/erigon-lib/kv/dbutils" "runtime" "time" @@ -24,7 +25,6 @@ import ( "golang.org/x/exp/slices" "github.com/ledgerwatch/erigon/common/changeset" - "github.com/ledgerwatch/erigon/common/dbutils" "github.com/ledgerwatch/erigon/ethdb" "github.com/ledgerwatch/erigon/ethdb/prune" ) diff --git a/eth/stagedsync/stage_indexes_test.go b/eth/stagedsync/stage_indexes_test.go index 2d9d8f847f5..dca9e0e989b 100644 --- a/eth/stagedsync/stage_indexes_test.go +++ b/eth/stagedsync/stage_indexes_test.go @@ -4,6 +4,8 @@ import ( "context" "encoding/binary" "fmt" + common2 "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/kv/dbutils" "reflect" "sort" "strconv" @@ -21,7 +23,6 @@ import ( "github.com/stretchr/testify/require" "github.com/ledgerwatch/erigon/common" - "github.com/ledgerwatch/erigon/common/dbutils" "github.com/ledgerwatch/erigon/common/math" "github.com/ledgerwatch/erigon/crypto" "github.com/ledgerwatch/erigon/ethdb/prune" @@ -284,7 +285,7 @@ func generateAddrs(numOfAddrs int, isPlain bool) ([][]byte, error) { addrs[i] = addr.Bytes() continue } - hash, err := common.HashData(addr.Bytes()) + hash, err := common2.HashData(addr.Bytes()) if err != nil { return nil, err } diff --git a/eth/stagedsync/stage_interhashes.go b/eth/stagedsync/stage_interhashes.go index d6bdc86f179..92404c5a76d 100644 --- a/eth/stagedsync/stage_interhashes.go +++ b/eth/stagedsync/stage_interhashes.go @@ -5,6 +5,7 @@ import ( "context" "encoding/binary" "fmt" + "github.com/ledgerwatch/erigon-lib/kv/dbutils" "math/bits" "sync/atomic" @@ -20,8 +21,6 @@ import ( "github.com/ledgerwatch/log/v3" "golang.org/x/exp/slices" - "github.com/ledgerwatch/erigon/common" - "github.com/ledgerwatch/erigon/common/dbutils" "github.com/ledgerwatch/erigon/common/math" "github.com/ledgerwatch/erigon/consensus" "github.com/ledgerwatch/erigon/core/types" @@ -229,11 +228,11 @@ func (p *HashPromoter) PromoteOnHistoryV3(logPrefix string, from, to uint64, sto if err != nil { return err } - addrHash, err := common.HashData(k[:length.Addr]) + addrHash, err := libcommon.HashData(k[:length.Addr]) if err != nil { return err } - secKey, err := common.HashData(k[length.Addr:]) + secKey, err := libcommon.HashData(k[length.Addr:]) if err != nil { return err } diff --git a/eth/stagedsync/stage_interhashes_test.go b/eth/stagedsync/stage_interhashes_test.go index 1bf48ebf452..3bf6c7faac3 100644 --- a/eth/stagedsync/stage_interhashes_test.go +++ b/eth/stagedsync/stage_interhashes_test.go @@ -3,6 +3,7 @@ package stagedsync_test import ( "context" "encoding/binary" + "github.com/ledgerwatch/erigon-lib/kv/dbutils" "testing" libcommon "github.com/ledgerwatch/erigon-lib/common" @@ -15,7 +16,6 @@ import ( "github.com/ledgerwatch/erigon/turbo/snapshotsync/freezeblocks" "github.com/ledgerwatch/erigon/common" - "github.com/ledgerwatch/erigon/common/dbutils" "github.com/ledgerwatch/erigon/core/types/accounts" "github.com/ledgerwatch/erigon/params" "github.com/ledgerwatch/erigon/turbo/trie" @@ -91,7 +91,7 @@ func TestAccountAndStorageTrie(t *testing.T) { accountTrieA := make(map[string][]byte) err = tx.ForEach(kv.TrieOfAccounts, nil, func(k, v []byte) error { - accountTrieA[string(k)] = common.CopyBytes(v) + accountTrieA[string(k)] = libcommon.CopyBytes(v) return nil }) assert.Nil(t, err) @@ -118,7 +118,7 @@ func TestAccountAndStorageTrie(t *testing.T) { storageTrie := make(map[string][]byte) err = tx.ForEach(kv.TrieOfStorage, nil, func(k, v []byte) error { - storageTrie[string(k)] = common.CopyBytes(v) + storageTrie[string(k)] = libcommon.CopyBytes(v) return nil }) assert.Nil(t, err) @@ -141,7 +141,7 @@ func TestAccountAndStorageTrie(t *testing.T) { // ---------------------------------------------------------------- newAddress := libcommon.HexToAddress("0x4f61f2d5ebd991b85aa1677db97307caf5215c91") - hash4b, err := common.HashData(newAddress[:]) + hash4b, err := libcommon.HashData(newAddress[:]) assert.Nil(t, err) assert.Equal(t, hash4a[0], hash4b[0]) @@ -157,7 +157,7 @@ func TestAccountAndStorageTrie(t *testing.T) { accountTrieB := make(map[string][]byte) err = tx.ForEach(kv.TrieOfAccounts, nil, func(k, v []byte) error { - accountTrieB[string(k)] = common.CopyBytes(v) + accountTrieB[string(k)] = libcommon.CopyBytes(v) return nil }) assert.Nil(t, err) @@ -235,21 +235,21 @@ func TestStorageDeletion(t *testing.T) { ctx := context.Background() address := libcommon.HexToAddress("0x1000000000000000000000000000000000000000") - hashedAddress, err := common.HashData(address[:]) + hashedAddress, err := libcommon.HashData(address[:]) assert.Nil(t, err) incarnation := uint64(1) assert.Nil(t, addTestAccount(tx, hashedAddress, params.Ether, incarnation)) plainLocation1 := libcommon.HexToHash("0x1000000000000000000000000000000000000000000000000000000000000000") - hashedLocation1, err := common.HashData(plainLocation1[:]) + hashedLocation1, err := libcommon.HashData(plainLocation1[:]) assert.Nil(t, err) plainLocation2 := libcommon.HexToHash("0x1A00000000000000000000000000000000000000000000000000000000000000") - hashedLocation2, err := common.HashData(plainLocation2[:]) + hashedLocation2, err := libcommon.HashData(plainLocation2[:]) assert.Nil(t, err) plainLocation3 := libcommon.HexToHash("0x1E00000000000000000000000000000000000000000000000000000000000000") - hashedLocation3, err := common.HashData(plainLocation3[:]) + hashedLocation3, err := libcommon.HashData(plainLocation3[:]) assert.Nil(t, err) value1 := common.FromHex("0xABCD") @@ -276,7 +276,7 @@ func TestStorageDeletion(t *testing.T) { storageTrieA := make(map[string][]byte) err = tx.ForEach(kv.TrieOfStorage, nil, func(k, v []byte) error { - storageTrieA[string(k)] = common.CopyBytes(v) + storageTrieA[string(k)] = libcommon.CopyBytes(v) return nil }) assert.Nil(t, err) @@ -307,7 +307,7 @@ func TestStorageDeletion(t *testing.T) { storageTrieB := make(map[string][]byte) err = tx.ForEach(kv.TrieOfStorage, nil, func(k, v []byte) error { - storageTrieB[string(k)] = common.CopyBytes(v) + storageTrieB[string(k)] = libcommon.CopyBytes(v) return nil }) assert.Nil(t, err) @@ -319,67 +319,67 @@ func TestHiveTrieRoot(t *testing.T) { db, tx := memdb.NewTestTx(t) ctx := context.Background() - hashedAddress1, _ := common.HashData(common.FromHex("0000000000000000000000000000000000000000")) + hashedAddress1, _ := libcommon.HashData(common.FromHex("0000000000000000000000000000000000000000")) require.Nil(t, tx.Put(kv.HashedAccounts, hashedAddress1[:], common.FromHex("02081bc5e32fd4403800"))) - hashedAddress2, _ := common.HashData(common.FromHex("0000000000000000000000000000000000000314")) + hashedAddress2, _ := libcommon.HashData(common.FromHex("0000000000000000000000000000000000000314")) require.Nil(t, tx.Put(kv.HashedAccounts, hashedAddress2[:], common.FromHex("0c0101203e6de602146067c01322e2528a8f320c504fd3d19a4d6c4c53b54d2b2f9357ec"))) - hashedLocA, _ := common.HashData(common.FromHex("0000000000000000000000000000000000000000000000000000000000000000")) + hashedLocA, _ := libcommon.HashData(common.FromHex("0000000000000000000000000000000000000000000000000000000000000000")) require.Nil(t, tx.Put(kv.HashedStorage, dbutils.GenerateCompositeStorageKey(hashedAddress2, 1, hashedLocA), common.FromHex("1234"))) - hashedLocB, _ := common.HashData(common.FromHex("6661e9d6d8b923d5bbaab1b96e1dd51ff6ea2a93520fdc9eb75d059238b8c5e9")) + hashedLocB, _ := libcommon.HashData(common.FromHex("6661e9d6d8b923d5bbaab1b96e1dd51ff6ea2a93520fdc9eb75d059238b8c5e9")) require.Nil(t, tx.Put(kv.HashedStorage, dbutils.GenerateCompositeStorageKey(hashedAddress2, 1, hashedLocB), common.FromHex("01"))) - hashedAddress3, _ := common.HashData(common.FromHex("0000000000000000000000000000000000000315")) + hashedAddress3, _ := libcommon.HashData(common.FromHex("0000000000000000000000000000000000000315")) require.Nil(t, tx.Put(kv.HashedAccounts, hashedAddress3[:], common.FromHex("0e100999999999999999999999999999999901012052de487a82a5e45f90f7fb0edf025b1d23f85c308ae7543736a91ac6295217f3"))) - hashedAddress4, _ := common.HashData(common.FromHex("0000000000000000000000000000000000000316")) + hashedAddress4, _ := libcommon.HashData(common.FromHex("0000000000000000000000000000000000000316")) require.Nil(t, tx.Put(kv.HashedAccounts, hashedAddress4[:], common.FromHex("0c010120803ac275052ba5360d44e51a7d4a49ed9156c461a21119ff650506869827f2c8"))) - hashedLocC, _ := common.HashData(common.FromHex("0000000000000000000000000000000000000000000000000000000000000001")) + hashedLocC, _ := libcommon.HashData(common.FromHex("0000000000000000000000000000000000000000000000000000000000000001")) require.Nil(t, tx.Put(kv.HashedStorage, dbutils.GenerateCompositeStorageKey(hashedAddress4, 1, hashedLocC), common.FromHex("030000"))) - hashedAddress5, _ := common.HashData(common.FromHex("0000000000000000000000000000000000000317")) + hashedAddress5, _ := libcommon.HashData(common.FromHex("0000000000000000000000000000000000000317")) require.Nil(t, tx.Put(kv.HashedAccounts, hashedAddress5[:], common.FromHex("0c010120247c40b032c36acb07ca105280db053d204d3133302420f403dfbb54f775d0e2"))) - hashedAddress6, _ := common.HashData(common.FromHex("0161e041aad467a890839d5b08b138c1e6373072")) + hashedAddress6, _ := libcommon.HashData(common.FromHex("0161e041aad467a890839d5b08b138c1e6373072")) require.Nil(t, tx.Put(kv.HashedAccounts, hashedAddress6[:], common.FromHex("020b0123450000000000000000"))) - hashedAddress7, _ := common.HashData(common.FromHex("6e53b788a8e675377c5f160e5c6cca6b46074af8")) + hashedAddress7, _ := libcommon.HashData(common.FromHex("6e53b788a8e675377c5f160e5c6cca6b46074af8")) require.Nil(t, tx.Put(kv.HashedAccounts, hashedAddress7[:], common.FromHex("02081bc16d674ec80000"))) - hashedAddress8, _ := common.HashData(common.FromHex("87da6a8c6e9eff15d703fc2773e32f6af8dbe301")) + hashedAddress8, _ := libcommon.HashData(common.FromHex("87da6a8c6e9eff15d703fc2773e32f6af8dbe301")) require.Nil(t, tx.Put(kv.HashedAccounts, hashedAddress8[:], common.FromHex("020b0123450000000000000000"))) - hashedAddress9, _ := common.HashData(common.FromHex("b97de4b8c857e4f6bc354f226dc3249aaee49209")) + hashedAddress9, _ := libcommon.HashData(common.FromHex("b97de4b8c857e4f6bc354f226dc3249aaee49209")) require.Nil(t, tx.Put(kv.HashedAccounts, hashedAddress9[:], common.FromHex("020b0123450000000000000000"))) - hashedAddress10, _ := common.HashData(common.FromHex("c5065c9eeebe6df2c2284d046bfc906501846c51")) + hashedAddress10, _ := libcommon.HashData(common.FromHex("c5065c9eeebe6df2c2284d046bfc906501846c51")) require.Nil(t, tx.Put(kv.HashedAccounts, hashedAddress10[:], common.FromHex("020b0123450000000000000000"))) - hashedAddress11, _ := common.HashData(common.FromHex("cf49fda3be353c69b41ed96333cd24302da4556f")) + hashedAddress11, _ := libcommon.HashData(common.FromHex("cf49fda3be353c69b41ed96333cd24302da4556f")) require.Nil(t, tx.Put(kv.HashedAccounts, hashedAddress11[:], common.FromHex("0301010b012344fffb67ea09bf8000"))) - hashedAddress12, _ := common.HashData(common.FromHex("e0840414c530d72e5c2f1fe64f6311cc3136cab1")) + hashedAddress12, _ := libcommon.HashData(common.FromHex("e0840414c530d72e5c2f1fe64f6311cc3136cab1")) require.Nil(t, tx.Put(kv.HashedAccounts, hashedAddress12[:], common.FromHex("02081bc16d674ec80000"))) - hashedAddress13, _ := common.HashData(common.FromHex("f8e0e7f6f1d0514ddfbc00bec204641f1f4d8cc8")) + hashedAddress13, _ := libcommon.HashData(common.FromHex("f8e0e7f6f1d0514ddfbc00bec204641f1f4d8cc8")) require.Nil(t, tx.Put(kv.HashedAccounts, hashedAddress13[:], common.FromHex("02081bc16d674ec80000"))) @@ -392,7 +392,7 @@ func TestHiveTrieRoot(t *testing.T) { // Now add a new account newAddress := libcommon.HexToAddress("0xf76fefb6608ca3d826945a9571d1f8e53bb6f366") - newHash, err := common.HashData(newAddress[:]) + newHash, err := libcommon.HashData(newAddress[:]) require.Nil(t, err) require.Nil(t, tx.Put(kv.HashedAccounts, newHash[:], common.FromHex("02081bc16d674ec80000"))) diff --git a/eth/stagedsync/stage_log_index.go b/eth/stagedsync/stage_log_index.go index 0f10c1b576b..1c7e3f01208 100644 --- a/eth/stagedsync/stage_log_index.go +++ b/eth/stagedsync/stage_log_index.go @@ -5,6 +5,7 @@ import ( "context" "encoding/binary" "fmt" + "github.com/ledgerwatch/erigon-lib/kv/dbutils" "runtime" "time" @@ -19,7 +20,6 @@ import ( "github.com/ledgerwatch/log/v3" "golang.org/x/exp/slices" - "github.com/ledgerwatch/erigon/common/dbutils" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/ethdb/cbor" "github.com/ledgerwatch/erigon/ethdb/prune" diff --git a/eth/stagedsync/stage_senders.go b/eth/stagedsync/stage_senders.go index fb1f271a2ba..0993e67fa7e 100644 --- a/eth/stagedsync/stage_senders.go +++ b/eth/stagedsync/stage_senders.go @@ -5,6 +5,7 @@ import ( "encoding/binary" "errors" "fmt" + "github.com/ledgerwatch/erigon-lib/kv/dbutils" "math" "sync" "time" @@ -21,7 +22,6 @@ import ( "github.com/ledgerwatch/log/v3" "github.com/ledgerwatch/secp256k1" - "github.com/ledgerwatch/erigon/common/dbutils" "github.com/ledgerwatch/erigon/common/debug" "github.com/ledgerwatch/erigon/core/rawdb" "github.com/ledgerwatch/erigon/core/types" diff --git a/eth/stagedsync/stage_snapshots.go b/eth/stagedsync/stage_snapshots.go index 0ea782fba3f..3da1d60ba74 100644 --- a/eth/stagedsync/stage_snapshots.go +++ b/eth/stagedsync/stage_snapshots.go @@ -120,7 +120,7 @@ func DownloadAndIndexSnapshotsIfNeed(s *StageState, ctx context.Context, tx kv.R return nil } - if err := snapshotsync.WaitForDownloader(s.LogPrefix(), ctx, cfg.historyV3, cfg.agg, tx, cfg.blockReader, cfg.dbEventNotifier, &cfg.chainConfig, cfg.snapshotDownloader); err != nil { + if err := snapshotsync.WaitForDownloader(s.LogPrefix(), ctx, cfg.historyV3, snapshotsync.NoCaplin, cfg.agg, tx, cfg.blockReader, cfg.dbEventNotifier, &cfg.chainConfig, cfg.snapshotDownloader); err != nil { return err } @@ -314,12 +314,16 @@ func SnapshotsPrune(s *PruneState, initialCycle bool, cfg SnapshotsCfg, ctx cont } cfg.blockRetire.RetireBlocksInBackground(ctx, s.ForwardProgress, cfg.chainConfig.Bor != nil, log.LvlInfo, func(downloadRequest []services.DownloadRequest) error { - if cfg.snapshotDownloader != nil && !reflect.ValueOf(cfg.snapshotDownloader).IsNil() { - if err := snapshotsync.RequestSnapshotsDownload(ctx, downloadRequest, cfg.snapshotDownloader); err != nil { - return err - } + if cfg.snapshotDownloader == nil || reflect.ValueOf(cfg.snapshotDownloader).IsNil() { + return nil } - return nil + return snapshotsync.RequestSnapshotsDownload(ctx, downloadRequest, cfg.snapshotDownloader) + }, func(l []string) error { + if cfg.snapshotDownloader == nil || reflect.ValueOf(cfg.snapshotDownloader).IsNil() { + return nil + } + _, err := cfg.snapshotDownloader.Delete(ctx, &proto_downloader.DeleteRequest{Paths: l}) + return err }) //cfg.agg.BuildFilesInBackground() } diff --git a/eth/stagedsync/testutil.go b/eth/stagedsync/testutil.go index 28ce1bf2169..812eba9a508 100644 --- a/eth/stagedsync/testutil.go +++ b/eth/stagedsync/testutil.go @@ -9,7 +9,6 @@ import ( libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/kv" state2 "github.com/ledgerwatch/erigon-lib/state" - "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/core/state" "github.com/ledgerwatch/erigon/core/types/accounts" "github.com/ledgerwatch/erigon/eth/ethconfig" @@ -167,7 +166,7 @@ func generateBlocks2(t *testing.T, from uint64, numberOfBlocks uint64, blockWrit if blockNumber == 1 || updateIncarnation || difficulty == changeCodeIndepenentlyOfIncarnations { if newAcc.Incarnation > 0 { code := []byte(fmt.Sprintf("acc-code-%v", blockNumber)) - codeHash, _ := common.HashData(code) + codeHash, _ := libcommon.HashData(code) if blockNumber >= from { if err := blockWriter.UpdateAccountCode(addr, newAcc.Incarnation, codeHash, code); err != nil { t.Fatal(err) @@ -238,7 +237,7 @@ func generateBlocks(t *testing.T, from uint64, numberOfBlocks uint64, stateWrite if blockNumber == 1 || updateIncarnation || difficulty == changeCodeIndepenentlyOfIncarnations { if newAcc.Incarnation > 0 { code := []byte(fmt.Sprintf("acc-code-%v", blockNumber)) - codeHash, _ := common.HashData(code) + codeHash, _ := libcommon.HashData(code) if blockNumber >= from { if err := blockWriter.UpdateAccountCode(addr, newAcc.Incarnation, codeHash, code); err != nil { t.Fatal(err) diff --git a/eth/tracers/internal/tracetest/calltrace_test.go b/eth/tracers/internal/tracetest/calltrace_test.go index 625e27d6f04..30c4c23ad35 100644 --- a/eth/tracers/internal/tracetest/calltrace_test.go +++ b/eth/tracers/internal/tracetest/calltrace_test.go @@ -18,6 +18,7 @@ package tracetest import ( "encoding/json" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "math/big" "os" "path/filepath" @@ -29,7 +30,6 @@ import ( libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/hexutility" "github.com/ledgerwatch/erigon/common" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/common/math" "github.com/ledgerwatch/erigon/core" "github.com/ledgerwatch/erigon/core/types" diff --git a/eth/tracers/js/goja.go b/eth/tracers/js/goja.go index 0ff07151ffa..ac794316448 100644 --- a/eth/tracers/js/goja.go +++ b/eth/tracers/js/goja.go @@ -316,7 +316,7 @@ func (t *jsTracer) CaptureEnter(typ vm.OpCode, from libcommon.Address, to libcom t.frame.typ = typ.String() t.frame.from = from t.frame.to = to - t.frame.input = common.CopyBytes(input) + t.frame.input = libcommon.CopyBytes(input) t.frame.gas = uint(gas) t.frame.value = nil if value != nil { @@ -336,7 +336,7 @@ func (t *jsTracer) CaptureExit(output []byte, gasUsed uint64, err error) { } t.frameResult.gasUsed = uint(gasUsed) - t.frameResult.output = common.CopyBytes(output) + t.frameResult.output = libcommon.CopyBytes(output) t.frameResult.err = err if _, err := t.exit(t.obj, t.frameResultValue); err != nil { @@ -446,7 +446,7 @@ func (t *jsTracer) setBuiltinFunctions() { vm.Interrupt(err) return nil } - code = common.CopyBytes(code) + code = libcommon.CopyBytes(code) codeHash := crypto.Keccak256(code) b := crypto.CreateAddress2(addr, libcommon.HexToHash(salt), codeHash).Bytes() res, err := t.toBuf(vm, b) @@ -792,7 +792,7 @@ func (co *contractObj) GetValue() goja.Value { } func (co *contractObj) GetInput() goja.Value { - input := common.CopyBytes(co.contract.Input) + input := libcommon.CopyBytes(co.contract.Input) res, err := co.toBuf(co.vm, input) if err != nil { co.vm.Interrupt(err) diff --git a/eth/tracers/native/call.go b/eth/tracers/native/call.go index 0c210c8790b..7e994337e5b 100644 --- a/eth/tracers/native/call.go +++ b/eth/tracers/native/call.go @@ -22,12 +22,12 @@ import ( "math/big" "sync/atomic" + "github.com/ledgerwatch/erigon-lib/common/hexutil" + "github.com/holiman/uint256" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/hexutility" "github.com/ledgerwatch/erigon/accounts/abi" - "github.com/ledgerwatch/erigon/common" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/core/vm" "github.com/ledgerwatch/erigon/eth/tracers" @@ -72,7 +72,7 @@ func (f callFrame) failed() bool { } func (f *callFrame) processOutput(output []byte, err error) { - output = common.CopyBytes(output) + output = libcommon.CopyBytes(output) if err == nil { f.Output = output return @@ -139,7 +139,7 @@ func (t *callTracer) CaptureStart(from libcommon.Address, to libcommon.Address, Type: vm.CALL, From: from, To: to, - Input: common.CopyBytes(input), + Input: libcommon.CopyBytes(input), Gas: gas, } if value != nil { @@ -148,15 +148,11 @@ func (t *callTracer) CaptureStart(from libcommon.Address, to libcommon.Address, if create { t.callstack[0].Type = vm.CREATE } - t.logIndex = 0 - t.logGaps = make(map[uint64]int) } // CaptureEnd is called after the call finishes to finalize the tracing. func (t *callTracer) CaptureEnd(output []byte, gasUsed uint64, err error) { t.callstack[0].processOutput(output, err) - t.logIndex = 0 - t.logGaps = nil } // CaptureState implements the EVMLogger interface to trace a single step of VM execution. @@ -178,7 +174,7 @@ func (t *callTracer) CaptureEnter(typ vm.OpCode, from libcommon.Address, to libc Type: typ, From: from, To: toCopy, - Input: common.CopyBytes(input), + Input: libcommon.CopyBytes(input), Gas: gas, Value: value.ToBig(), } @@ -222,6 +218,8 @@ func (t *callTracer) CaptureTxEnd(receipt *types.Receipt, err error) { clearFailedLogs(&t.callstack[0], false, 0, t.logGaps) fixLogIndexGap(&t.callstack[0], t.logGaps) } + t.logIndex = 0 + t.logGaps = nil } func (t *callTracer) OnLog(log *types.Log) { @@ -269,7 +267,7 @@ func clearFailedLogs(cf *callFrame, parentFailed bool, gap int, logGaps map[uint gap += len(cf.Logs) if gap > 0 { lastIdx := len(cf.Logs) - 1 - if lastIdx > 0 { + if lastIdx > 0 && logGaps != nil { idx := cf.Logs[lastIdx].Index logGaps[idx] = gap } diff --git a/eth/tracers/native/gen_account_json.go b/eth/tracers/native/gen_account_json.go index d4f00b2a4e2..4a016137f38 100644 --- a/eth/tracers/native/gen_account_json.go +++ b/eth/tracers/native/gen_account_json.go @@ -4,12 +4,11 @@ package native import ( "encoding/json" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "math/big" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/hexutility" - - "github.com/ledgerwatch/erigon/common/hexutil" ) var _ = (*accountMarshaling)(nil) diff --git a/eth/tracers/native/gen_callframe_json.go b/eth/tracers/native/gen_callframe_json.go index 9a49f0f7cc5..8dbba5c07a7 100644 --- a/eth/tracers/native/gen_callframe_json.go +++ b/eth/tracers/native/gen_callframe_json.go @@ -4,12 +4,12 @@ package native import ( "encoding/json" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "math/big" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/hexutility" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core/vm" ) diff --git a/eth/tracers/native/prestate.go b/eth/tracers/native/prestate.go index 1a5bf786989..8b1f03c9455 100644 --- a/eth/tracers/native/prestate.go +++ b/eth/tracers/native/prestate.go @@ -23,12 +23,13 @@ import ( "math/big" "sync/atomic" + "github.com/ledgerwatch/erigon-lib/common/hexutil" + "github.com/holiman/uint256" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/hexutility" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/core/vm" "github.com/ledgerwatch/erigon/crypto" diff --git a/eth/tracers/tracers_test.go b/eth/tracers/tracers_test.go index 51daf404233..cc3e29146cf 100644 --- a/eth/tracers/tracers_test.go +++ b/eth/tracers/tracers_test.go @@ -20,11 +20,11 @@ import ( "crypto/ecdsa" "crypto/rand" "encoding/json" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "math/big" "testing" libcommon "github.com/ledgerwatch/erigon-lib/common" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/core/vm" diff --git a/ethdb/privateapi/mining.go b/ethdb/privateapi/mining.go index 414fb9891e7..0413b2b957f 100644 --- a/ethdb/privateapi/mining.go +++ b/ethdb/privateapi/mining.go @@ -4,6 +4,7 @@ import ( "bytes" "context" "errors" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "sync" libcommon "github.com/ledgerwatch/erigon-lib/common" @@ -12,7 +13,6 @@ import ( "github.com/ledgerwatch/log/v3" "google.golang.org/protobuf/types/known/emptypb" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/consensus/ethash" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/rlp" diff --git a/ethstats/ethstats.go b/ethstats/ethstats.go index 45f67ab8de2..a2556f9b551 100644 --- a/ethstats/ethstats.go +++ b/ethstats/ethstats.go @@ -37,12 +37,12 @@ import ( "github.com/ledgerwatch/erigon/turbo/services" "github.com/ledgerwatch/log/v3" - "github.com/ledgerwatch/erigon/cmd/sentry/sentry" "github.com/ledgerwatch/erigon/consensus" "github.com/ledgerwatch/erigon/core/rawdb" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/eth/stagedsync/stages" "github.com/ledgerwatch/erigon/node" + "github.com/ledgerwatch/erigon/p2p/sentry" ) const ( diff --git a/go.mod b/go.mod index f2685c6d6f8..c004d8dd12c 100644 --- a/go.mod +++ b/go.mod @@ -1,11 +1,10 @@ module github.com/ledgerwatch/erigon -go 1.19 +go 1.20 require ( - github.com/erigontech/mdbx-go v0.27.17 + github.com/erigontech/mdbx-go v0.35.2-0.20231101074031-9f999220e9ed github.com/ledgerwatch/erigon-lib v1.0.0 - github.com/ledgerwatch/erigon-snapshot v1.3.1-0.20231014011414-bfa3a30f55b2 github.com/ledgerwatch/log/v3 v3.9.0 github.com/ledgerwatch/secp256k1 v1.0.0 ) @@ -13,13 +12,14 @@ require ( replace github.com/ledgerwatch/erigon-lib => ./erigon-lib require ( - gfx.cafe/util/go/generic v0.0.0-20230502013805-237fcc25d586 + gfx.cafe/util/go/generic v0.0.0-20230721185457-c559e86c829c github.com/99designs/gqlgen v0.17.33 github.com/Giulio2002/bls v0.0.0-20230906201036-c2330c97dc7d github.com/RoaringBitmap/roaring v1.2.3 github.com/VictoriaMetrics/fastcache v1.12.1 github.com/VictoriaMetrics/metrics v1.23.1 github.com/alecthomas/kong v0.8.0 + github.com/anacrolix/log v0.14.3-0.20230823030427-4b296d71a6b4 github.com/anacrolix/sync v0.4.0 github.com/anacrolix/torrent v1.52.6-0.20230926121951-11833b45cfbe github.com/benesch/cgosymbolizer v0.0.0-20190515212042-bec6fe6e597b @@ -27,7 +27,7 @@ require ( github.com/c2h5oh/datasize v0.0.0-20220606134207-859f65c6625b github.com/consensys/gnark-crypto v0.12.1 github.com/crate-crypto/go-ipa v0.0.0-20221111143132-9aa5d42120bc - github.com/crate-crypto/go-kzg-4844 v0.3.0 + github.com/crate-crypto/go-kzg-4844 v0.7.0 github.com/davecgh/go-spew v1.1.1 github.com/deckarep/golang-set v1.8.0 github.com/deckarep/golang-set/v2 v2.3.1 @@ -63,20 +63,16 @@ require ( github.com/maticnetwork/polyproto v0.0.3-0.20230216113155-340ea926ca53 github.com/multiformats/go-multiaddr v0.11.0 github.com/nxadm/tail v1.4.9-0.20211216163028-4472660a31a6 - github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 github.com/pelletier/go-toml v1.9.5 github.com/pelletier/go-toml/v2 v2.1.0 + github.com/pierrec/lz4 v2.6.1+incompatible github.com/pion/randutil v0.1.0 github.com/pion/stun v0.6.0 - github.com/prometheus/client_golang v1.17.0 - github.com/prometheus/client_model v0.5.0 - github.com/prometheus/common v0.44.0 github.com/protolambda/ztyp v0.2.2 github.com/prysmaticlabs/go-bitfield v0.0.0-20210809151128-385d8c5e3fb7 - github.com/prysmaticlabs/gohashtree v0.0.3-alpha.0.20230510131438-bf992328364a + github.com/prysmaticlabs/gohashtree v0.0.3-alpha.0.20230502123415-aafd8b3ca202 github.com/quasilyte/go-ruleguard/dsl v0.3.22 github.com/rs/cors v1.10.1 - github.com/shirou/gopsutil/v3 v3.23.8 github.com/spf13/afero v1.9.5 github.com/spf13/cobra v1.7.0 github.com/spf13/pflag v1.0.5 @@ -96,7 +92,7 @@ require ( golang.org/x/sync v0.4.0 golang.org/x/sys v0.13.0 golang.org/x/time v0.3.0 - google.golang.org/grpc v1.58.3 + google.golang.org/grpc v1.59.0 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 google.golang.org/protobuf v1.31.0 gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c @@ -116,7 +112,6 @@ require ( github.com/anacrolix/envpprof v1.3.0 // indirect github.com/anacrolix/generics v0.0.0-20230816105729-c755655aee45 // indirect github.com/anacrolix/go-libutp v1.3.1 // indirect - github.com/anacrolix/log v0.14.3-0.20230823030427-4b296d71a6b4 // indirect github.com/anacrolix/missinggo v1.3.0 // indirect github.com/anacrolix/missinggo/perf v1.0.0 // indirect github.com/anacrolix/missinggo/v2 v2.7.2-0.20230527121029-a582b4f397b9 // indirect @@ -125,6 +120,24 @@ require ( github.com/anacrolix/stm v0.4.1-0.20221221005312-96d17df0e496 // indirect github.com/anacrolix/upnp v0.1.3-0.20220123035249-922794e51c96 // indirect github.com/anacrolix/utp v0.1.0 // indirect + github.com/aws/aws-sdk-go-v2 v1.21.2 // indirect + github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.14 // indirect + github.com/aws/aws-sdk-go-v2/config v1.19.0 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.13.43 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.13 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.43 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.37 // indirect + github.com/aws/aws-sdk-go-v2/internal/ini v1.3.45 // indirect + github.com/aws/aws-sdk-go-v2/internal/v4a v1.1.6 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.15 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.38 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.37 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.15.6 // indirect + github.com/aws/aws-sdk-go-v2/service/s3 v1.40.2 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.15.2 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.17.3 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.23.2 // indirect + github.com/aws/smithy-go v1.15.0 // indirect github.com/bahlo/generic-list-go v0.2.0 // indirect github.com/benbjohnson/clock v1.3.5 // indirect github.com/benbjohnson/immutable v0.4.1-0.20221220213129-8932b999621d // indirect @@ -133,8 +146,10 @@ require ( github.com/bradfitz/iter v0.0.0-20191230175014-e8f45d346db8 // indirect github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect + github.com/cilium/ebpf v0.9.1 // indirect github.com/consensys/bavard v0.1.13 // indirect github.com/containerd/cgroups v1.1.0 // indirect + github.com/containerd/cgroups/v3 v3.0.2 // indirect github.com/coreos/go-systemd/v22 v22.5.0 // indirect github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect github.com/davidlazar/go-crypto v0.0.0-20200604182044-b73af7476f6c // indirect @@ -151,7 +166,6 @@ require ( github.com/go-llsqlite/crawshaw v0.0.0-20230910110433-7e901377eb6c // indirect github.com/go-logr/logr v1.2.4 // indirect github.com/go-logr/stdr v1.2.2 // indirect - github.com/go-ole/go-ole v1.2.6 // indirect github.com/go-sourcemap/sourcemap v2.1.3+incompatible // indirect github.com/go-stack/stack v1.8.1 // indirect github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 // indirect @@ -172,6 +186,7 @@ require ( github.com/koron/go-ssdp v0.0.4 // indirect github.com/kr/pretty v0.3.1 // indirect github.com/kr/text v0.2.0 // indirect + github.com/ledgerwatch/erigon-snapshot v1.3.1-0.20231102060711-19219b948f46 // indirect github.com/libp2p/go-buffer-pool v0.1.0 // indirect github.com/libp2p/go-cidranger v1.1.0 // indirect github.com/libp2p/go-flow-metrics v0.1.0 // indirect @@ -182,7 +197,6 @@ require ( github.com/libp2p/go-netroute v0.2.1 // indirect github.com/libp2p/go-reuseport v0.4.0 // indirect github.com/libp2p/go-yamux/v4 v4.0.1 // indirect - github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect github.com/marten-seemann/tcp v0.0.0-20210406111302-dfbc87cc63fd // indirect github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-isatty v0.0.19 // indirect @@ -209,6 +223,7 @@ require ( github.com/multiformats/go-varint v0.0.7 // indirect github.com/onsi/ginkgo/v2 v2.11.0 // indirect github.com/opencontainers/runtime-spec v1.1.0 // indirect + github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 // indirect github.com/pion/datachannel v1.5.2 // indirect github.com/pion/dtls/v2 v2.2.7 // indirect github.com/pion/ice/v2 v2.2.6 // indirect @@ -226,7 +241,9 @@ require ( github.com/pion/webrtc/v3 v3.1.42 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect + github.com/prometheus/client_golang v1.17.0 // indirect + github.com/prometheus/client_model v0.5.0 // indirect + github.com/prometheus/common v0.44.0 // indirect github.com/prometheus/procfs v0.11.1 // indirect github.com/quic-go/qpack v0.4.0 // indirect github.com/quic-go/qtls-go1-20 v0.3.3 // indirect @@ -238,15 +255,12 @@ require ( github.com/rogpeppe/go-internal v1.10.0 // indirect github.com/rs/dnscache v0.0.0-20211102005908-e0241e321417 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect - github.com/shoenig/go-m1cpu v0.1.6 // indirect + github.com/sirupsen/logrus v1.9.0 // indirect github.com/spaolacci/murmur3 v1.1.0 // indirect github.com/supranational/blst v0.3.11 // indirect - github.com/tklauser/go-sysconf v0.3.12 // indirect - github.com/tklauser/numcpus v0.6.1 // indirect github.com/valyala/fastrand v1.1.0 // indirect github.com/valyala/histogram v1.2.0 // indirect github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 // indirect - github.com/yusufpapurcu/wmi v1.2.3 // indirect go.etcd.io/bbolt v1.3.6 // indirect go.opentelemetry.io/otel v1.8.0 // indirect go.opentelemetry.io/otel/trace v1.8.0 // indirect @@ -256,7 +270,7 @@ require ( golang.org/x/mod v0.13.0 // indirect golang.org/x/text v0.13.0 // indirect golang.org/x/tools v0.14.0 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d // indirect gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect lukechampine.com/blake3 v1.2.1 // indirect lukechampine.com/uint128 v1.3.0 // indirect diff --git a/go.sum b/go.sum index 8116dee3f09..e64dfc0bff6 100644 --- a/go.sum +++ b/go.sum @@ -46,8 +46,8 @@ dmitri.shuralyov.com/html/belt v0.0.0-20180602232347-f7d459c86be0/go.mod h1:JLBr dmitri.shuralyov.com/service/change v0.0.0-20181023043359-a85b471d5412/go.mod h1:a1inKt/atXimZ4Mv927x+r7UpyzRUf4emIoiiSC2TN4= dmitri.shuralyov.com/state v0.0.0-20180228185332-28bcc343414c/go.mod h1:0PRwlb0D6DFvNNtx+9ybjezNCa8XF0xaYcETyp6rHWU= filippo.io/edwards25519 v1.0.0-rc.1 h1:m0VOOB23frXZvAOK44usCgLWvtsxIoMCTBGJZlpmGfU= -gfx.cafe/util/go/generic v0.0.0-20230502013805-237fcc25d586 h1:dlvliDuuuI3E+HtVeZVQgKuGcf0fGNNNadt04fgTyX8= -gfx.cafe/util/go/generic v0.0.0-20230502013805-237fcc25d586/go.mod h1:WvSX4JsCRBuIXj0FRBFX9YLg+2SoL3w8Ww19uZO9yNE= +gfx.cafe/util/go/generic v0.0.0-20230721185457-c559e86c829c h1:alCfDKmPC0EC0KGlZWrNF0hilVWBkzMz+aAYTJ/2hY4= +gfx.cafe/util/go/generic v0.0.0-20230721185457-c559e86c829c/go.mod h1:WvSX4JsCRBuIXj0FRBFX9YLg+2SoL3w8Ww19uZO9yNE= git.apache.org/thrift.git v0.0.0-20180902110319-2566ecd5d999/go.mod h1:fPE2ZNJGynbRyZ4dJvy6G277gSllfV2HJqblrnkyeyg= github.com/99designs/gqlgen v0.17.33 h1:VTUpAtElDszatPSe26N0SD0deJCSxb7TZLlUb6JnVRY= github.com/99designs/gqlgen v0.17.33/go.mod h1:ygDK+m8zGpoQuSh8xoq80UfisR5JTZr7mN57qXlSIZs= @@ -141,6 +141,42 @@ github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYU github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= github.com/arbovm/levenshtein v0.0.0-20160628152529-48b4e1c0c4d0 h1:jfIu9sQUG6Ig+0+Ap1h4unLjW6YQJpKZVmUzxsD4E/Q= github.com/arbovm/levenshtein v0.0.0-20160628152529-48b4e1c0c4d0/go.mod h1:t2tdKJDJF9BV14lnkjHmOQgcvEKgtqs5a1N3LNdJhGE= +github.com/aws/aws-sdk-go-v2 v1.21.2 h1:+LXZ0sgo8quN9UOKXXzAWRT3FWd4NxeXWOZom9pE7GA= +github.com/aws/aws-sdk-go-v2 v1.21.2/go.mod h1:ErQhvNuEMhJjweavOYhxVkn2RUx7kQXVATHrjKtxIpM= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.14 h1:Sc82v7tDQ/vdU1WtuSyzZ1I7y/68j//HJ6uozND1IDs= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.14/go.mod h1:9NCTOURS8OpxvoAVHq79LK81/zC78hfRWFn+aL0SPcY= +github.com/aws/aws-sdk-go-v2/config v1.19.0 h1:AdzDvwH6dWuVARCl3RTLGRc4Ogy+N7yLFxVxXe1ClQ0= +github.com/aws/aws-sdk-go-v2/config v1.19.0/go.mod h1:ZwDUgFnQgsazQTnWfeLWk5GjeqTQTL8lMkoE1UXzxdE= +github.com/aws/aws-sdk-go-v2/credentials v1.13.43 h1:LU8vo40zBlo3R7bAvBVy/ku4nxGEyZe9N8MqAeFTzF8= +github.com/aws/aws-sdk-go-v2/credentials v1.13.43/go.mod h1:zWJBz1Yf1ZtX5NGax9ZdNjhhI4rgjfgsyk6vTY1yfVg= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.13 h1:PIktER+hwIG286DqXyvVENjgLTAwGgoeriLDD5C+YlQ= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.13/go.mod h1:f/Ib/qYjhV2/qdsf79H3QP/eRE4AkVyEf6sk7XfZ1tg= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.43 h1:nFBQlGtkbPzp/NjZLuFxRqmT91rLJkgvsEQs68h962Y= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.43/go.mod h1:auo+PiyLl0n1l8A0e8RIeR8tOzYPfZZH/JNlrJ8igTQ= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.37 h1:JRVhO25+r3ar2mKGP7E0LDl8K9/G36gjlqca5iQbaqc= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.37/go.mod h1:Qe+2KtKml+FEsQF/DHmDV+xjtche/hwoF75EG4UlHW8= +github.com/aws/aws-sdk-go-v2/internal/ini v1.3.45 h1:hze8YsjSh8Wl1rYa1CJpRmXP21BvOBuc76YhW0HsuQ4= +github.com/aws/aws-sdk-go-v2/internal/ini v1.3.45/go.mod h1:lD5M20o09/LCuQ2mE62Mb/iSdSlCNuj6H5ci7tW7OsE= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.1.6 h1:wmGLw2i8ZTlHLw7a9ULGfQbuccw8uIiNr6sol5bFzc8= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.1.6/go.mod h1:Q0Hq2X/NuL7z8b1Dww8rmOFl+jzusKEcyvkKspwdpyc= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.15 h1:7R8uRYyXzdD71KWVCL78lJZltah6VVznXBazvKjfH58= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.15/go.mod h1:26SQUPcTNgV1Tapwdt4a1rOsYRsnBsJHLMPoxK2b0d8= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.38 h1:skaFGzv+3kA+v2BPKhuekeb1Hbb105+44r8ASC+q5SE= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.38/go.mod h1:epIZoRSSbRIwLPJU5F+OldHhwZPBdpDeQkRdCeY3+00= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.37 h1:WWZA/I2K4ptBS1kg0kV1JbBtG/umed0vwHRrmcr9z7k= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.37/go.mod h1:vBmDnwWXWxNPFRMmG2m/3MKOe+xEcMDo1tanpaWCcck= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.15.6 h1:9ulSU5ClouoPIYhDQdg9tpl83d5Yb91PXTKK+17q+ow= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.15.6/go.mod h1:lnc2taBsR9nTlz9meD+lhFZZ9EWY712QHrRflWpTcOA= +github.com/aws/aws-sdk-go-v2/service/s3 v1.40.2 h1:Ll5/YVCOzRB+gxPqs2uD0R7/MyATC0w85626glSKmp4= +github.com/aws/aws-sdk-go-v2/service/s3 v1.40.2/go.mod h1:Zjfqt7KhQK+PO1bbOsFNzKgaq7TcxzmEoDWN8lM0qzQ= +github.com/aws/aws-sdk-go-v2/service/sso v1.15.2 h1:JuPGc7IkOP4AaqcZSIcyqLpFSqBWK32rM9+a1g6u73k= +github.com/aws/aws-sdk-go-v2/service/sso v1.15.2/go.mod h1:gsL4keucRCgW+xA85ALBpRFfdSLH4kHOVSnLMSuBECo= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.17.3 h1:HFiiRkf1SdaAmV3/BHOFZ9DjFynPHj8G/UIO1lQS+fk= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.17.3/go.mod h1:a7bHA82fyUXOm+ZSWKU6PIoBxrjSprdLoM8xPYvzYVg= +github.com/aws/aws-sdk-go-v2/service/sts v1.23.2 h1:0BkLfgeDjfZnZ+MhB3ONb01u9pwFYTCZVhlsSSBvlbU= +github.com/aws/aws-sdk-go-v2/service/sts v1.23.2/go.mod h1:Eows6e1uQEsc4ZaHANmsPRzAKcVDrcmjjWiih2+HUUQ= +github.com/aws/smithy-go v1.15.0 h1:PS/durmlzvAFpQHDs4wi4sNNP9ExsqZh6IlfdHXgKK8= +github.com/aws/smithy-go v1.15.0/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= github.com/bahlo/generic-list-go v0.2.0 h1:5sz/EEAK+ls5wF+NeqDpk5+iNdMDXrh3z3nPnH1Wvgk= github.com/bahlo/generic-list-go v0.2.0/go.mod h1:2KvAjgMlE5NNynlg/5iLrrCCZ2+5xWbdbCW3pNTGyYg= github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= @@ -179,6 +215,8 @@ github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWR github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= github.com/cilium/ebpf v0.2.0/go.mod h1:To2CFviqOWL/M0gIMsvSMlqe7em/l1ALkX1PyjrX2Qs= +github.com/cilium/ebpf v0.9.1 h1:64sn2K3UKw8NbP/blsixRpF3nXuyhz/VjRlRzvlBRu4= +github.com/cilium/ebpf v0.9.1/go.mod h1:+OhNOIXx/Fnu1IE8bJz2dzOA+VSfyTfdNUVdlQnxUFY= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= @@ -190,6 +228,8 @@ github.com/consensys/gnark-crypto v0.12.1/go.mod h1:v2Gy7L/4ZRosZ7Ivs+9SfUDr0f5U 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/cgroups/v3 v3.0.2 h1:f5WFqIVSgo5IZmtTT3qVBo6TzI1ON6sycSBKkymb9L0= +github.com/containerd/cgroups/v3 v3.0.2/go.mod h1:JUgITrzdFqp42uI2ryGA+ge0ap/nxzYgkGmIcetmErE= github.com/coreos/go-systemd v0.0.0-20181012123002-c6f51f82210d/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/go-systemd/v22 v22.1.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= github.com/coreos/go-systemd/v22 v22.5.0 h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8iXXhfZs= @@ -200,8 +240,8 @@ github.com/cpuguy83/go-md2man/v2 v2.0.2 h1:p1EgwI/C7NhT0JmVkwCD2ZBK8j4aeHQX2pMHH github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/crate-crypto/go-ipa v0.0.0-20221111143132-9aa5d42120bc h1:mtR7MuscVeP/s0/ERWA2uSr5QOrRYy1pdvZqG1USfXI= github.com/crate-crypto/go-ipa v0.0.0-20221111143132-9aa5d42120bc/go.mod h1:gFnFS95y8HstDP6P9pPwzrxOOC5TRDkwbM+ao15ChAI= -github.com/crate-crypto/go-kzg-4844 v0.3.0 h1:UBlWE0CgyFqqzTI+IFyCzA7A3Zw4iip6uzRv5NIXG0A= -github.com/crate-crypto/go-kzg-4844 v0.3.0/go.mod h1:SBP7ikXEgDnUPONgm33HtuDZEDtWa3L4QtN1ocJSEQ4= +github.com/crate-crypto/go-kzg-4844 v0.7.0 h1:C0vgZRk4q4EZ/JgPfzuSoxdCq3C3mOZMBShovmncxvA= +github.com/crate-crypto/go-kzg-4844 v0.7.0/go.mod h1:1kMhvPgI0Ky3yIa+9lFySEBUBXkYxeOi8ZF1sYioxhc= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= @@ -248,8 +288,8 @@ github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1m github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po= github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/erigontech/mdbx-go v0.27.17 h1:+LOuGmdrD74psBVHDaS3cFXzI9tTSfLcUvOUtMwX2Ok= -github.com/erigontech/mdbx-go v0.27.17/go.mod h1:FAMxbOgqOnRDx51j8HjuJZIgznbDwjX7LItd+/UWyA4= +github.com/erigontech/mdbx-go v0.35.2-0.20231101074031-9f999220e9ed h1:i1xZSrLxifCa0nabPeTxma9/3hqPSRmvqwWqad8rLVM= +github.com/erigontech/mdbx-go v0.35.2-0.20231101074031-9f999220e9ed/go.mod h1:FAMxbOgqOnRDx51j8HjuJZIgznbDwjX7LItd+/UWyA4= github.com/fjl/gencodec v0.0.0-20220412091415-8bb9e558978c h1:CndMRAH4JIwxbW8KYq6Q+cGWcGHz0FjGR3QqcInWcW0= github.com/fjl/gencodec v0.0.0-20220412091415-8bb9e558978c/go.mod h1:AzA8Lj6YtixmJWL+wkKoBGsLWy9gFrAzi4g+5bCKwpY= github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= @@ -297,8 +337,6 @@ github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= -github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-sourcemap/sourcemap v2.1.3+incompatible h1:W1iEw64niKVGogNgBN3ePyLFfuisuzeidWPMPWmECqU= github.com/go-sourcemap/sourcemap v2.1.3+incompatible/go.mod h1:F8jJfvm2KbVjc5NqelyYJmf/v5J0dwNLS2mL4sNA1Jg= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= @@ -374,9 +412,8 @@ github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= -github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-github v17.0.0+incompatible/go.mod h1:zLgOLi98H3fifZn+44m+umXrS52loVEgC2AApnigrVQ= github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= @@ -461,6 +498,8 @@ github.com/jbenet/go-temp-err-catcher v0.1.0/go.mod h1:0kJRvmDZXNMIiJirNPEYfhpPw github.com/jedib0t/go-pretty/v6 v6.4.7 h1:lwiTJr1DEkAgzljsUsORmWsVn5MQjt1BPJdPCtJ6KXE= github.com/jedib0t/go-pretty/v6 v6.4.7/go.mod h1:Ndk3ase2CkQbXLLNf5QDHoYb6J9WtVfmHZu9n8rk2xs= github.com/jellevandenhooff/dkim v0.0.0-20150330215556-f50fe3d243e1/go.mod h1:E0B/fFc00Y+Rasa88328GlI/XbtyysCtTHZS8h7IrBU= +github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= +github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= @@ -500,8 +539,8 @@ github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/kylelemons/godebug v0.0.0-20170224010052-a616ab194758 h1:0D5M2HQSGD3PYPwICLl+/9oulQauOuETfgFvhBDffs0= github.com/leanovate/gopter v0.2.9 h1:fQjYxZaynp97ozCzfOyOuAGOU4aU/z37zf/tOujFk7c= github.com/leanovate/gopter v0.2.9/go.mod h1:U2L/78B+KVFIx2VmW6onHJQzXtFb+p5y3y2Sh+Jxxv8= -github.com/ledgerwatch/erigon-snapshot v1.3.1-0.20231014011414-bfa3a30f55b2 h1:p6WVs6M6N6QhIK6pIS3c7CSVUgvCx2XIKz9Fdak1ADA= -github.com/ledgerwatch/erigon-snapshot v1.3.1-0.20231014011414-bfa3a30f55b2/go.mod h1:3AuPxZc85jkehh/HA9h8gabv5MSi3kb/ddtzBsTVJFo= +github.com/ledgerwatch/erigon-snapshot v1.3.1-0.20231102060711-19219b948f46 h1:yt3/AcefMQOzY/P05jyeaKpqMQvrCbL6OJWALsjKp5U= +github.com/ledgerwatch/erigon-snapshot v1.3.1-0.20231102060711-19219b948f46/go.mod h1:3AuPxZc85jkehh/HA9h8gabv5MSi3kb/ddtzBsTVJFo= github.com/ledgerwatch/log/v3 v3.9.0 h1:iDwrXe0PVwBC68Dd94YSsHbMgQ3ufsgjzXtFNFVZFRk= github.com/ledgerwatch/log/v3 v3.9.0/go.mod h1:EiAY6upmI/6LkNhOVxb4eVsmsP11HZCnZ3PlJMjYiqE= github.com/ledgerwatch/secp256k1 v1.0.0 h1:Usvz87YoTG0uePIV8woOof5cQnLXGYa162rFf3YnwaQ= @@ -535,8 +574,6 @@ github.com/libp2p/go-reuseport v0.4.0 h1:nR5KU7hD0WxXCJbmw7r2rhRYruNRl2koHw8fQsc github.com/libp2p/go-reuseport v0.4.0/go.mod h1:ZtI03j/wO5hZVDFo2jKywN6bYKWLOy8Se6DrI2E1cLU= github.com/libp2p/go-yamux/v4 v4.0.1 h1:FfDR4S1wj6Bw2Pqbc8Uz7pCxeRBPbwsBbEdfwiCypkQ= github.com/libp2p/go-yamux/v4 v4.0.1/go.mod h1:NWjl8ZTLOGlozrXSOZ/HlfG++39iKNnM5wwmtQP1YB4= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= github.com/lunixbochs/vtclean v1.0.0/go.mod h1:pHhQNgMf3btfWnGBVipUOjRYhoOsdGqdm/+2c2E2WMI= github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/marten-seemann/tcp v0.0.0-20210406111302-dfbc87cc63fd h1:br0buuQ854V8u83wA0rVZ8ttrq5CpaPZdvrK0LP2lOk= @@ -647,6 +684,8 @@ github.com/pelletier/go-toml/v2 v2.1.0 h1:FnwAJ4oYMvbT/34k9zzHuZNrhlz48GB3/s6at6 github.com/pelletier/go-toml/v2 v2.1.0/go.mod h1:tJU2Z3ZkXwnxa4DPO899bsyIoywizdUvyaeZurnPPDc= github.com/philhofer/fwd v1.0.0/go.mod h1:gk3iGcWd9+svBvR0sR+KPcfE+RNWozjowpeBVG3ZVNU= github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= +github.com/pierrec/lz4 v2.6.1+incompatible h1:9UY3+iC23yxF0UfGaYrGplQ+79Rg+h/q9FV9ix19jjM= +github.com/pierrec/lz4 v2.6.1+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pion/datachannel v1.5.2 h1:piB93s8LGmbECrpO84DnkIVWasRMk3IimbcXkTQLE6E= github.com/pion/datachannel v1.5.2/go.mod h1:FTGQWaHrdCwIJ1rw6xBIfZVkslikjShim5yr05XFuCQ= github.com/pion/dtls/v2 v2.1.3/go.mod h1:o6+WvyLDAlXF7YiPB/RlskRoeK+/JtuaZa5emwQcWus= @@ -698,8 +737,6 @@ github.com/pkg/profile v1.6.0/go.mod h1:qBsxPvzyUincmltOk6iyRVxHYg4adc0OFOv72ZdL github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/prometheus/client_golang v0.8.0/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod h1:p2iRAGwDERtqlqzRXnrOVns+ignqQo//hLXqYxZYVNs= @@ -732,8 +769,8 @@ github.com/protolambda/ztyp v0.2.2 h1:rVcL3vBu9W/aV646zF6caLS/dyn9BN8NYiuJzicLNy github.com/protolambda/ztyp v0.2.2/go.mod h1:9bYgKGqg3wJqT9ac1gI2hnVb0STQq7p/1lapqrqY1dU= github.com/prysmaticlabs/go-bitfield v0.0.0-20210809151128-385d8c5e3fb7 h1:0tVE4tdWQK9ZpYygoV7+vS6QkDvQVySboMVEIxBJmXw= github.com/prysmaticlabs/go-bitfield v0.0.0-20210809151128-385d8c5e3fb7/go.mod h1:wmuf/mdK4VMD+jA9ThwcUKjg3a2XWM9cVfFYjDyY4j4= -github.com/prysmaticlabs/gohashtree v0.0.3-alpha.0.20230510131438-bf992328364a h1:po9GKr5APkGj8blcsaPYj/EBlZbvCmoKE/oGLZE+PNI= -github.com/prysmaticlabs/gohashtree v0.0.3-alpha.0.20230510131438-bf992328364a/go.mod h1:4pWaT30XoEx1j8KNJf3TV+E3mQkaufn7mf+jRNb/Fuk= +github.com/prysmaticlabs/gohashtree v0.0.3-alpha.0.20230502123415-aafd8b3ca202 h1:ZsFouPKy81vvQo/Zup5gASVdOm6aiuwUhp7GxvQmjIA= +github.com/prysmaticlabs/gohashtree v0.0.3-alpha.0.20230502123415-aafd8b3ca202/go.mod h1:4pWaT30XoEx1j8KNJf3TV+E3mQkaufn7mf+jRNb/Fuk= github.com/quasilyte/go-ruleguard/dsl v0.3.22 h1:wd8zkOhSNr+I+8Qeciml08ivDt1pSXe60+5DqOpCjPE= github.com/quasilyte/go-ruleguard/dsl v0.3.22/go.mod h1:KeCP03KrjuSO0H1kTuZQCWlQPulDV6YMIXmpQss17rU= github.com/quic-go/qpack v0.4.0 h1:Cr9BXA1sQS2SmDUWjSofMPNKmvF6IiIfDRmgU0w1ZCo= @@ -771,12 +808,6 @@ github.com/sclevine/agouti v3.0.0+incompatible/go.mod h1:b4WX9W9L1sfQKXeJf1mUTLZ github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= github.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8= github.com/sergi/go-diff v1.3.1/go.mod h1:aMJSSKb2lpPvRNec0+w3fl7LP9IOFzdc9Pa4NFbPK1I= -github.com/shirou/gopsutil/v3 v3.23.8 h1:xnATPiybo6GgdRoC4YoGnxXZFRc3dqQTGi73oLvvBrE= -github.com/shirou/gopsutil/v3 v3.23.8/go.mod h1:7hmCaBn+2ZwaZOr6jmPBZDfawwMGuo1id3C6aM8EDqQ= -github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= -github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU= -github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= github.com/shurcooL/component v0.0.0-20170202220835-f88ec8f54cc4/go.mod h1:XhFIlyj5a1fBNx5aJTbKoIq0mNaPvOagO+HjB3EtxrY= github.com/shurcooL/events v0.0.0-20181021180414-410e4ca65f48/go.mod h1:5u70Mqkb5O5cxEA8nxTsgrgLehJeAw6Oc4Ab1c/P1HM= github.com/shurcooL/github_flavored_markdown v0.0.0-20181002035957-2122de532470/go.mod h1:2dOwnU2uBioM+SGy2aZoq1f/Sd1l9OkAeAUvjSyvgU0= @@ -803,6 +834,8 @@ github.com/shurcooL/webdavfs v0.0.0-20170829043945-18c3829fa133/go.mod h1:hKmq5k github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= +github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= +github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/assertions v0.0.0-20190215210624-980c5ac6f3ac/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/goconvey v0.0.0-20181108003508-044398e4856c/go.mod h1:XDJAKZRPZ1CvBcN2aX5YOUTYGHki24fSF0Iv48Ibg0s= @@ -844,10 +877,6 @@ github.com/tidwall/btree v1.6.0/go.mod h1:twD9XRA5jj9VUQGELzDO4HPQTNJsoWWfYEL+EU github.com/tinylib/msgp v1.0.2/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE= github.com/tinylib/msgp v1.1.0/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE= github.com/tinylib/msgp v1.1.2/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE= -github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= -github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= -github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= -github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= github.com/ugorji/go v1.1.13/go.mod h1:jxau1n+/wyTGLQoCkjok9r5zFa/FxT6eI5HiHKQszjc= github.com/ugorji/go/codec v1.1.13 h1:013LbFhocBoIqgHeIHKlV4JWYhqogATYWZhIcH0WHn4= github.com/ugorji/go/codec v1.1.13/go.mod h1:oNVt3Dq+FO91WNQ/9JnHKQP2QJxTzoN7wCBFCq1OeuU= @@ -878,8 +907,6 @@ github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw= -github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.6 h1:/ecaJf0sk1l4l6V4awd65v2C3ILy7MSj+s/x1ADCIMU= go.etcd.io/bbolt v1.3.6/go.mod h1:qXsaaIqmgQH0T+OPdb99Bf+PKfBBQVAdyD6TY9G8XM4= go.opencensus.io v0.18.0/go.mod h1:vKdFvxhtzZ9onBp9VKHK8z/sRpBMnKAsufL7wlDrCOA= @@ -1074,7 +1101,6 @@ golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1103,7 +1129,6 @@ golang.org/x/sys v0.0.0-20200923182605-d9f96fdee20d/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1121,13 +1146,13 @@ golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220608164250-635b8c9b7f68/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE= golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -1290,8 +1315,8 @@ google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto/googleapis/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/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d h1:uvYuEyMHKNt+lT4K3bN6fGswmK8qSvcreM3BwjDh+y4= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d/go.mod h1:+Bk1OCOj40wS2hwAMA+aCW9ypzm63QTBBHp6lQ3p+9M= google.golang.org/grpc v1.14.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.16.0/go.mod h1:0JHn/cJsOMiMfNA9+DeHDlAU7KAAB5GDlYFpa9MZMio= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= @@ -1311,8 +1336,8 @@ google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc v1.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.3.0 h1:rNBFJjBCOgVr9pWD7rs/knKL4FRTKgpZmsRfV214zcA= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0/go.mod h1:Dk1tviKTvMCz5tvh7t+fh94dhmQVHuCt2OzJB3CTW9Y= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= diff --git a/migrations/migrations.go b/migrations/migrations.go index d69e523bcf9..9f734d1ac9e 100644 --- a/migrations/migrations.go +++ b/migrations/migrations.go @@ -4,11 +4,11 @@ import ( "bytes" "context" "fmt" + "github.com/ledgerwatch/erigon-lib/common" "path/filepath" "github.com/ledgerwatch/erigon-lib/common/datadir" "github.com/ledgerwatch/erigon-lib/kv" - "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/core/rawdb" "github.com/ledgerwatch/erigon/eth/stagedsync/stages" "github.com/ledgerwatch/log/v3" diff --git a/migrations/txs_begin_end.go b/migrations/txs_begin_end.go index bae1019f259..f2063bd4ac1 100644 --- a/migrations/txs_begin_end.go +++ b/migrations/txs_begin_end.go @@ -16,7 +16,6 @@ import ( "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/log/v3" - "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/core/rawdb" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/eth/stagedsync/stages" @@ -238,7 +237,7 @@ func writeTransactionsNewDeprecated(db kv.RwTx, txs []types.Transaction, baseTxI return fmt.Errorf("broken tx rlp: %w", err) } // If next Append returns KeyExists error - it means you need to open transaction in App code before calling this func. Batch is also fine. - if err := db.Put(kv.EthTx, txIdKey, common.CopyBytes(buf.Bytes())); err != nil { + if err := db.Put(kv.EthTx, txIdKey, common2.CopyBytes(buf.Bytes())); err != nil { return err } txId++ diff --git a/migrations/txs_v3.go b/migrations/txs_v3.go index 6047585626d..f34789f3591 100644 --- a/migrations/txs_v3.go +++ b/migrations/txs_v3.go @@ -14,7 +14,6 @@ import ( "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/log/v3" - "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/core/rawdb" ) @@ -66,7 +65,7 @@ var TxsV3 = Migration{ } // Copying k because otherwise the same memory will be reused // for the next key and Delete below will end up deleting 1 more record than required - kCopy := common.CopyBytes(k) + kCopy := common2.CopyBytes(k) if err = tx.Delete(kv.Senders, kCopy); err != nil { return err } diff --git a/migrations/txs_v3_test.go b/migrations/txs_v3_test.go index 50ac319f12a..5d3071400c7 100644 --- a/migrations/txs_v3_test.go +++ b/migrations/txs_v3_test.go @@ -5,6 +5,7 @@ import ( "context" "encoding/binary" "fmt" + "github.com/ledgerwatch/erigon-lib/kv/dbutils" "math/big" "testing" "time" @@ -14,7 +15,6 @@ import ( "github.com/ledgerwatch/erigon-lib/common/u256" "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/erigon-lib/kv/memdb" - "github.com/ledgerwatch/erigon/common/dbutils" "github.com/ledgerwatch/erigon/migrations" "github.com/ledgerwatch/erigon/rlp" "github.com/ledgerwatch/log/v3" diff --git a/node/endpoints.go b/node/endpoints.go index 3855b6dc8d3..5a2a1051735 100644 --- a/node/endpoints.go +++ b/node/endpoints.go @@ -19,29 +19,102 @@ package node import ( "context" "errors" + "fmt" "net" "net/http" + "net/url" "time" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon/rpc" "github.com/ledgerwatch/erigon/rpc/rpccfg" "github.com/ledgerwatch/log/v3" + "golang.org/x/net/http2" + "golang.org/x/net/http2/h2c" ) +type HttpEndpointConfig struct { + Timeouts rpccfg.HTTPTimeouts + HTTPS bool + CertFile string + KeyFile string +} + // StartHTTPEndpoint starts the HTTP RPC endpoint. -func StartHTTPEndpoint(endpoint string, timeouts rpccfg.HTTPTimeouts, handler http.Handler) (*http.Server, net.Addr, error) { +func StartHTTPEndpoint(urlEndpoint string, cfg *HttpEndpointConfig, handler http.Handler) (*http.Server, net.Addr, error) { // start the HTTP listener var ( listener net.Listener err error ) - if listener, err = net.Listen("tcp", endpoint); err != nil { + socketUrl, err := url.Parse(urlEndpoint) + if err != nil { + return nil, nil, fmt.Errorf("malformatted http listen url %s: %w", urlEndpoint, err) + } + if listener, err = net.Listen(socketUrl.Scheme, socketUrl.Host+socketUrl.EscapedPath()); err != nil { + return nil, nil, err + } + // make sure timeout values are meaningful + CheckTimeouts(&cfg.Timeouts) + // create the http2 server for handling h2c + h2 := &http2.Server{} + // enable h2c support + handler = h2c.NewHandler(handler, h2) + // Bundle the http server + httpSrv := &http.Server{ + Handler: handler, + ReadTimeout: cfg.Timeouts.ReadTimeout, + WriteTimeout: cfg.Timeouts.WriteTimeout, + IdleTimeout: cfg.Timeouts.IdleTimeout, + ReadHeaderTimeout: cfg.Timeouts.ReadTimeout, + } + // start the HTTP server + go func() { + var serveErr error + if cfg.HTTPS { + serveErr = httpSrv.ServeTLS(listener, cfg.CertFile, cfg.KeyFile) + if serveErr != nil && !isIgnoredHttpServerError(serveErr) { + log.Warn("Failed to serve https endpoint", "err", serveErr) + } + } else { + serveErr = httpSrv.Serve(listener) + if serveErr != nil && !isIgnoredHttpServerError(serveErr) { + log.Warn("Failed to serve http endpoint", "err", serveErr) + } + } + }() + return httpSrv, listener.Addr(), err +} + +func isIgnoredHttpServerError(serveErr error) bool { + return (errors.Is(serveErr, context.Canceled) || errors.Is(serveErr, libcommon.ErrStopped) || errors.Is(serveErr, http.ErrServerClosed)) + +} + +// StartHTTPEndpoint starts the HTTP RPC endpoint. +func StartHTTPSEndpoint(urlEndpoint string, + keyFile string, certFile string, + timeouts rpccfg.HTTPTimeouts, handler http.Handler, +) (*http.Server, net.Addr, error) { + // start the HTTP listener + var ( + listener net.Listener + err error + ) + socketUrl, err := url.Parse(urlEndpoint) + if err != nil { + return nil, nil, fmt.Errorf("malformatted http listen url %s: %w", urlEndpoint, err) + } + if listener, err = net.Listen(socketUrl.Scheme, socketUrl.Host+socketUrl.EscapedPath()); err != nil { return nil, nil, err } // make sure timeout values are meaningful CheckTimeouts(&timeouts) - // Bundle and start the HTTP server + // create the http2 server for handling h2c + h2 := &http2.Server{} + // enable h2c support + handler = h2c.NewHandler(handler, h2) + // Bundle the http server httpSrv := &http.Server{ Handler: handler, ReadTimeout: timeouts.ReadTimeout, @@ -49,8 +122,9 @@ func StartHTTPEndpoint(endpoint string, timeouts rpccfg.HTTPTimeouts, handler ht IdleTimeout: timeouts.IdleTimeout, ReadHeaderTimeout: timeouts.ReadTimeout, } + // start the HTTP server go func() { - serveErr := httpSrv.Serve(listener) + serveErr := httpSrv.ServeTLS(listener, certFile, keyFile) if serveErr != nil && !(errors.Is(serveErr, context.Canceled) || errors.Is(serveErr, libcommon.ErrStopped) || errors.Is(serveErr, http.ErrServerClosed)) { log.Warn("Failed to serve http endpoint", "err", serveErr) diff --git a/p2p/discover/v5wire/crypto_test.go b/p2p/discover/v5wire/crypto_test.go index c5ce9c66ec7..1c27f37372e 100644 --- a/p2p/discover/v5wire/crypto_test.go +++ b/p2p/discover/v5wire/crypto_test.go @@ -21,11 +21,11 @@ import ( "crypto/ecdsa" "crypto/elliptic" "crypto/sha256" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "reflect" "strings" "testing" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/crypto" "github.com/ledgerwatch/erigon/p2p/enode" "github.com/ledgerwatch/log/v3" diff --git a/p2p/discover/v5wire/encoding_test.go b/p2p/discover/v5wire/encoding_test.go index 6db05675b4b..a3a1758423b 100644 --- a/p2p/discover/v5wire/encoding_test.go +++ b/p2p/discover/v5wire/encoding_test.go @@ -23,6 +23,7 @@ import ( "encoding/hex" "flag" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "net" "os" "path/filepath" @@ -32,7 +33,6 @@ import ( "testing" "github.com/davecgh/go-spew/spew" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/common/mclock" "github.com/ledgerwatch/erigon/crypto" "github.com/ledgerwatch/erigon/p2p/enode" diff --git a/p2p/dnsdisc/client_test.go b/p2p/dnsdisc/client_test.go index 7ab1f9ed586..0b9f3d3005c 100644 --- a/p2p/dnsdisc/client_test.go +++ b/p2p/dnsdisc/client_test.go @@ -20,12 +20,12 @@ import ( "context" "crypto/ecdsa" "errors" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "reflect" "testing" "time" "github.com/davecgh/go-spew/spew" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/common/mclock" "github.com/ledgerwatch/erigon/crypto" "github.com/ledgerwatch/erigon/p2p/enode" diff --git a/p2p/dnsdisc/tree_test.go b/p2p/dnsdisc/tree_test.go index 73ffafa6a8e..828d0c61645 100644 --- a/p2p/dnsdisc/tree_test.go +++ b/p2p/dnsdisc/tree_test.go @@ -17,11 +17,11 @@ package dnsdisc import ( + "github.com/ledgerwatch/erigon-lib/common/hexutil" "reflect" "testing" "github.com/davecgh/go-spew/spew" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/p2p/enode" ) diff --git a/p2p/enode/nodedb.go b/p2p/enode/nodedb.go index ab424492899..8145efc69a0 100644 --- a/p2p/enode/nodedb.go +++ b/p2p/enode/nodedb.go @@ -33,7 +33,6 @@ import ( "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/erigon-lib/kv/mdbx" - "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/rlp" "github.com/ledgerwatch/log/v3" @@ -251,7 +250,7 @@ func (db *DB) storeInt64(key []byte, n int64) error { blob := make([]byte, binary.MaxVarintLen64) blob = blob[:binary.PutVarint(blob, n)] return db.kv.Update(context.Background(), func(tx kv.RwTx) error { - return tx.Put(kv.Inodes, common.CopyBytes(key), blob) + return tx.Put(kv.Inodes, libcommon.CopyBytes(key), blob) }) } @@ -278,7 +277,7 @@ func (db *DB) storeUint64(key []byte, n uint64) error { blob := make([]byte, binary.MaxVarintLen64) blob = blob[:binary.PutUvarint(blob, n)] return db.kv.Update(context.Background(), func(tx kv.RwTx) error { - return tx.Put(kv.Inodes, common.CopyBytes(key), blob) + return tx.Put(kv.Inodes, libcommon.CopyBytes(key), blob) }) } diff --git a/p2p/metrics.go b/p2p/metrics.go index 322e141d2fb..2506ca7d80e 100644 --- a/p2p/metrics.go +++ b/p2p/metrics.go @@ -19,9 +19,8 @@ package p2p import ( + "github.com/ledgerwatch/erigon-lib/metrics" "net" - - "github.com/ledgerwatch/erigon/metrics" ) const ( diff --git a/p2p/peer.go b/p2p/peer.go index 88ea4bb50ec..0adf711d765 100644 --- a/p2p/peer.go +++ b/p2p/peer.go @@ -22,15 +22,18 @@ import ( "io" "net" "sort" + "strings" "sync" "time" + "github.com/ledgerwatch/erigon-lib/metrics" + "github.com/ledgerwatch/log/v3" + "github.com/ledgerwatch/erigon-lib/diagnostics" "github.com/ledgerwatch/erigon/common/debug" "github.com/ledgerwatch/erigon/common/mclock" "github.com/ledgerwatch/erigon/event" - "github.com/ledgerwatch/erigon/metrics" "github.com/ledgerwatch/erigon/p2p/enode" "github.com/ledgerwatch/erigon/p2p/enr" "github.com/ledgerwatch/erigon/rlp" @@ -121,6 +124,14 @@ type Peer struct { events *event.Feed pubkey [64]byte metricsEnabled bool + + //diagnostics info + BytesIn uint64 + BytesOut uint64 + CapBytesIn map[string]uint64 + CapBytesOut map[string]uint64 + TypeBytesIn map[string]uint64 + TypeBytesOut map[string]uint64 } // NewPeer returns a peer for testing purposes. @@ -224,6 +235,12 @@ func newPeer(logger log.Logger, conn *conn, protocols []Protocol, pubkey [64]byt log: logger.New("id", conn.node.ID(), "conn", conn.flags), pubkey: pubkey, metricsEnabled: metricsEnabled, + CapBytesIn: make(map[string]uint64), + CapBytesOut: make(map[string]uint64), + TypeBytesIn: make(map[string]uint64), + TypeBytesOut: make(map[string]uint64), + BytesIn: 0, + BytesOut: 0, } return p } @@ -232,6 +249,45 @@ func (p *Peer) Log() log.Logger { return p.log } +func makeFirstCharCap(input string) string { + // Convert the entire string to lowercase + input = strings.ToLower(input) + // Use strings.Title to capitalize the first letter of each word + input = strings.ToUpper(input[:1]) + input[1:] + return input +} + +func convertToCamelCase(input string) string { + parts := strings.Split(input, "_") + if len(parts) == 1 { + return input + } + + var result string + + for _, part := range parts { + if len(part) > 0 && part != parts[len(parts)-1] { + result += makeFirstCharCap(part) + } + } + + return result +} + +func (p *Peer) CountBytesTransfered(msgType string, msgCap string, bytes uint64, inbound bool) { + messageType := convertToCamelCase(msgType) + + if inbound { + p.BytesIn += bytes + p.CapBytesIn[msgCap] += bytes + p.TypeBytesIn[messageType] += bytes + } else { + p.BytesOut += bytes + p.CapBytesOut[msgCap] += bytes + p.TypeBytesOut[messageType] += bytes + } +} + func (p *Peer) run() (peerErr *PeerError) { var ( writeStart = make(chan struct{}, 1) @@ -309,7 +365,7 @@ func (p *Peer) readLoop(errc chan<- error) { errc <- err return } - msg.ReceivedAt = time.Now() + if err = p.handle(msg); err != nil { errc <- err return @@ -343,6 +399,17 @@ func (p *Peer) handle(msg Msg) error { if err != nil { return fmt.Errorf("msg code out of range: %v", msg.Code) } + //msgType := "unknown" + + //var dds uint64 = msg.Code + + //dds -= proto.offset + //msgCode := msg.Code - proto.offset + //msgType = eth.ToProto[proto.cap().Version][dds].String() + //msgType := eth.ToProto[proto.cap().Version][msgCode].String() + + //p.CountBytesTransfered(msgType, proto.cap().String(), uint64(msg.Size), true) + if p.metricsEnabled { m := fmt.Sprintf("%s_%s_%d_%#02x", ingressMeterName, proto.Name, proto.Version, msg.Code-proto.offset) metrics.GetOrCreateCounter(m).Set(uint64(msg.meterSize)) @@ -445,9 +512,9 @@ func (rw *protoRW) WriteMsg(msg Msg) (err error) { if msg.Code >= rw.Length { return NewPeerError(PeerErrorInvalidMessageCode, DiscProtocolError, nil, fmt.Sprintf("not handled code=%d", msg.Code)) } + msg.meterCap = rw.cap() msg.meterCode = msg.Code - msg.Code += rw.offset select { @@ -465,6 +532,7 @@ func (rw *protoRW) WriteMsg(msg Msg) (err error) { } func (rw *protoRW) ReadMsg() (Msg, error) { + select { case msg := <-rw.in: msg.Code -= rw.offset @@ -531,3 +599,23 @@ func (p *Peer) Info() *PeerInfo { } return info } + +func (p *Peer) DiagInfo() *diagnostics.PeerStatistics { + return &diagnostics.PeerStatistics{ + BytesIn: p.BytesIn, + BytesOut: p.BytesOut, + CapBytesIn: p.CapBytesIn, + CapBytesOut: p.CapBytesOut, + TypeBytesIn: p.TypeBytesIn, + TypeBytesOut: p.TypeBytesOut, + } +} + +func (p *Peer) ResetDiagnosticsCounters() { + p.BytesIn = 0 + p.BytesOut = 0 + p.CapBytesIn = make(map[string]uint64) + p.CapBytesOut = make(map[string]uint64) + p.TypeBytesIn = make(map[string]uint64) + p.TypeBytesOut = make(map[string]uint64) +} diff --git a/p2p/rlpx/buffer_test.go b/p2p/rlpx/buffer_test.go index b33098b9c2a..2fb372debe4 100644 --- a/p2p/rlpx/buffer_test.go +++ b/p2p/rlpx/buffer_test.go @@ -18,9 +18,9 @@ package rlpx import ( "bytes" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "testing" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/stretchr/testify/assert" ) diff --git a/cmd/sentry/sentry/eth_handshake.go b/p2p/sentry/eth_handshake.go similarity index 100% rename from cmd/sentry/sentry/eth_handshake.go rename to p2p/sentry/eth_handshake.go diff --git a/cmd/sentry/sentry/eth_handshake_test.go b/p2p/sentry/eth_handshake_test.go similarity index 100% rename from cmd/sentry/sentry/eth_handshake_test.go rename to p2p/sentry/eth_handshake_test.go diff --git a/cmd/sentry/sentry/sentry_grpc_server.go b/p2p/sentry/sentry_grpc_server.go similarity index 98% rename from cmd/sentry/sentry/sentry_grpc_server.go rename to p2p/sentry/sentry_grpc_server.go index 3d55727c2ca..2440838965a 100644 --- a/cmd/sentry/sentry/sentry_grpc_server.go +++ b/p2p/sentry/sentry_grpc_server.go @@ -27,6 +27,7 @@ import ( libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/datadir" "github.com/ledgerwatch/erigon-lib/common/dir" + "github.com/ledgerwatch/erigon-lib/diagnostics" "github.com/ledgerwatch/erigon-lib/direct" "github.com/ledgerwatch/erigon-lib/gointerfaces" "github.com/ledgerwatch/erigon-lib/gointerfaces/grpcutil" @@ -345,13 +346,14 @@ func handShake( func runPeer( ctx context.Context, peerID [64]byte, - protocol uint, + cap p2p.Cap, rw p2p.MsgReadWriter, peerInfo *PeerInfo, send func(msgId proto_sentry.MessageId, peerID [64]byte, b []byte), hasSubscribers func(msgId proto_sentry.MessageId) bool, logger log.Logger, ) *p2p.PeerError { + protocol := cap.Version printTime := time.Now().Add(time.Minute) peerPrinted := false defer func() { @@ -383,6 +385,7 @@ func runPeer( if err != nil { return p2p.NewPeerError(p2p.PeerErrorMessageReceive, p2p.DiscNetworkError, err, "sentry.runPeer: ReadMsg error") } + if msg.Size > eth.ProtocolMaxMsgSize { msg.Discard() return p2p.NewPeerError(p2p.PeerErrorMessageSizeLimit, p2p.DiscSubprotocolError, nil, fmt.Sprintf("sentry.runPeer: message is too large %d, limit %d", msg.Size, eth.ProtocolMaxMsgSize)) @@ -533,6 +536,11 @@ func runPeer( default: logger.Error(fmt.Sprintf("[p2p] Unknown message code: %d, peerID=%x", msg.Code, peerID)) } + + msgType := eth.ToProto[protocol][msg.Code] + msgCap := cap.String() + peerInfo.peer.CountBytesTransfered(msgType.String(), msgCap, uint64(msg.Size), true) + msg.Discard() peerInfo.ClearDeadlines(time.Now(), givePermit) } @@ -624,14 +632,16 @@ func NewGrpcServer(ctx context.Context, dialCandidates func() enode.Iterator, re ss.GoodPeers.Store(peerID, peerInfo) ss.sendNewPeerToClients(gointerfaces.ConvertHashToH512(peerID)) getBlockHeadersErr := ss.getBlockHeaders(ctx, *peerBestHash, peerID) - if err != nil { + if getBlockHeadersErr != nil { return p2p.NewPeerError(p2p.PeerErrorFirstMessageSend, p2p.DiscNetworkError, getBlockHeadersErr, "p2p.Protocol.Run getBlockHeaders failure") } + cap := p2p.Cap{Name: eth.ProtocolName, Version: protocol} + err = runPeer( ctx, peerID, - protocol, + cap, rw, peerInfo, ss.send, @@ -730,6 +740,11 @@ func (ss *GrpcServer) removePeer(peerID [64]byte, reason *p2p.PeerError) { func (ss *GrpcServer) writePeer(logPrefix string, peerInfo *PeerInfo, msgcode uint64, data []byte, ttl time.Duration) { peerInfo.Async(func() { + + cap := p2p.Cap{Name: eth.ProtocolName, Version: peerInfo.protocol} + msgType := eth.ToProto[cap.Version][msgcode] + peerInfo.peer.CountBytesTransfered(msgType.String(), cap.String(), uint64(len(data)), false) + err := peerInfo.rw.WriteMsg(p2p.Msg{Code: msgcode, Size: uint32(len(data)), Payload: bytes.NewReader(data)}) if err != nil { peerInfo.Remove(p2p.NewPeerError(p2p.PeerErrorMessageSend, p2p.DiscNetworkError, err, fmt.Sprintf("%s writePeer msgcode=%d", logPrefix, msgcode))) @@ -1038,6 +1053,15 @@ func (ss *GrpcServer) Peers(_ context.Context, _ *emptypb.Empty) (*proto_sentry. return &reply, nil } +func (ss *GrpcServer) DiagnosticsPeersData() map[string]*diagnostics.PeerStatistics { + if ss.P2pServer == nil { + return map[string]*diagnostics.PeerStatistics{} + } + + peers := ss.P2pServer.DiagnosticsPeersInfo() + return peers +} + func (ss *GrpcServer) SimplePeerCount() map[uint]int { counts := map[uint]int{} ss.rangePeers(func(peerInfo *PeerInfo) bool { diff --git a/cmd/sentry/sentry/sentry_grpc_server_test.go b/p2p/sentry/sentry_grpc_server_test.go similarity index 100% rename from cmd/sentry/sentry/sentry_grpc_server_test.go rename to p2p/sentry/sentry_grpc_server_test.go diff --git a/cmd/sentry/sentry/broadcast.go b/p2p/sentry/sentry_multi_client/broadcast.go similarity index 98% rename from cmd/sentry/sentry/broadcast.go rename to p2p/sentry/sentry_multi_client/broadcast.go index e3f961aafde..f210d8ea5f1 100644 --- a/cmd/sentry/sentry/broadcast.go +++ b/p2p/sentry/sentry_multi_client/broadcast.go @@ -1,4 +1,4 @@ -package sentry +package sentry_multi_client import ( "context" diff --git a/cmd/sentry/sentry/sentry_api.go b/p2p/sentry/sentry_multi_client/sentry_api.go similarity index 96% rename from cmd/sentry/sentry/sentry_api.go rename to p2p/sentry/sentry_multi_client/sentry_api.go index f850e677eb7..210e91d1d42 100644 --- a/cmd/sentry/sentry/sentry_api.go +++ b/p2p/sentry/sentry_multi_client/sentry_api.go @@ -1,7 +1,8 @@ -package sentry +package sentry_multi_client import ( "context" + "github.com/ledgerwatch/erigon/p2p/sentry" "math/rand" "github.com/holiman/uint256" @@ -72,7 +73,7 @@ func (cs *MultiClient) SendBodyRequest(ctx context.Context, req *bodydownload.Bo if sentPeers == nil || len(sentPeers.Peers) == 0 { continue } - return ConvertH512ToPeerID(sentPeers.Peers[0]), true + return sentry.ConvertH512ToPeerID(sentPeers.Peers[0]), true } return [64]byte{}, false } @@ -119,7 +120,7 @@ func (cs *MultiClient) SendHeaderRequest(ctx context.Context, req *headerdownloa if sentPeers == nil || len(sentPeers.Peers) == 0 { continue } - return ConvertH512ToPeerID(sentPeers.Peers[0]), true + return sentry.ConvertH512ToPeerID(sentPeers.Peers[0]), true } return [64]byte{}, false } diff --git a/cmd/sentry/sentry/sentry_multi_client.go b/p2p/sentry/sentry_multi_client/sentry_multi_client.go similarity index 98% rename from cmd/sentry/sentry/sentry_multi_client.go rename to p2p/sentry/sentry_multi_client/sentry_multi_client.go index f117020119f..1766e399eca 100644 --- a/cmd/sentry/sentry/sentry_multi_client.go +++ b/p2p/sentry/sentry_multi_client/sentry_multi_client.go @@ -1,4 +1,4 @@ -package sentry +package sentry_multi_client import ( "bytes" @@ -6,6 +6,7 @@ import ( "encoding/hex" "errors" "fmt" + sentry2 "github.com/ledgerwatch/erigon/p2p/sentry" "math/rand" "sort" "sync" @@ -441,7 +442,7 @@ func (cs *MultiClient) blockHeaders(ctx context.Context, pkt eth.BlockHeadersPac return err } defer tx.Rollback() - penalties, err := cs.Hd.ProcessHeadersPOS(csHeaders, tx, ConvertH512ToPeerID(peerID)) + penalties, err := cs.Hd.ProcessHeadersPOS(csHeaders, tx, sentry2.ConvertH512ToPeerID(peerID)) if err != nil { return err } @@ -450,7 +451,7 @@ func (cs *MultiClient) blockHeaders(ctx context.Context, pkt eth.BlockHeadersPac } } else { sort.Sort(headerdownload.HeadersSort(csHeaders)) // Sorting by order of block heights - canRequestMore := cs.Hd.ProcessHeaders(csHeaders, false /* newBlock */, ConvertH512ToPeerID(peerID)) + canRequestMore := cs.Hd.ProcessHeaders(csHeaders, false /* newBlock */, sentry2.ConvertH512ToPeerID(peerID)) if canRequestMore { currentTime := time.Now() @@ -520,7 +521,7 @@ func (cs *MultiClient) newBlock66(ctx context.Context, inreq *proto_sentry.Inbou }) } - cs.Hd.ProcessHeaders(segments, true /* newBlock */, ConvertH512ToPeerID(inreq.PeerId)) // There is only one segment in this case + cs.Hd.ProcessHeaders(segments, true /* newBlock */, sentry2.ConvertH512ToPeerID(inreq.PeerId)) // There is only one segment in this case } else { outreq := proto_sentry.PenalizePeerRequest{ PeerId: inreq.PeerId, @@ -546,7 +547,7 @@ func (cs *MultiClient) newBlock66(ctx context.Context, inreq *proto_sentry.Inbou if _, err1 := sentry.PeerMinBlock(ctx, &outreq, &grpc.EmptyCallOption{}); err1 != nil { cs.logger.Error("Could not send min block for peer", "err", err1) } - cs.logger.Trace(fmt.Sprintf("NewBlockMsg{blockNumber: %d} from [%s]", request.Block.NumberU64(), ConvertH512ToPeerID(inreq.PeerId))) + cs.logger.Trace(fmt.Sprintf("NewBlockMsg{blockNumber: %d} from [%s]", request.Block.NumberU64(), sentry2.ConvertH512ToPeerID(inreq.PeerId))) return nil } @@ -560,7 +561,7 @@ func (cs *MultiClient) blockBodies66(ctx context.Context, inreq *proto_sentry.In // No point processing empty response return nil } - cs.Bd.DeliverBodies(txs, uncles, withdrawals, uint64(len(inreq.Data)), ConvertH512ToPeerID(inreq.PeerId)) + cs.Bd.DeliverBodies(txs, uncles, withdrawals, uint64(len(inreq.Data)), sentry2.ConvertH512ToPeerID(inreq.PeerId)) return nil } @@ -751,7 +752,7 @@ func (cs *MultiClient) handleInboundMessage(ctx context.Context, inreq *proto_se func (cs *MultiClient) HandlePeerEvent(ctx context.Context, event *proto_sentry.PeerEvent, sentry direct.SentryClient) error { eventID := event.EventId.String() - peerID := ConvertH512ToPeerID(event.PeerId) + peerID := sentry2.ConvertH512ToPeerID(event.PeerId) peerIDStr := hex.EncodeToString(peerID[:]) if !cs.logPeerInfo { diff --git a/p2p/server.go b/p2p/server.go index 48015bcaa01..4a32e45b35f 100644 --- a/p2p/server.go +++ b/p2p/server.go @@ -26,12 +26,14 @@ import ( "fmt" "net" "sort" + "strconv" "sync" "sync/atomic" "time" "golang.org/x/sync/semaphore" + "github.com/ledgerwatch/erigon-lib/diagnostics" "github.com/ledgerwatch/log/v3" "github.com/ledgerwatch/erigon/common" @@ -154,6 +156,9 @@ type Config struct { // Internet. NAT nat.Interface `toml:",omitempty"` + // NAT interface description (see NAT.Parse()). + NATSpec string + // If Dialer is set to a non-nil value, the given Dialer // is used to dial outbound peer connections. Dialer NodeDialer `toml:"-"` @@ -173,6 +178,18 @@ type Config struct { MetricsEnabled bool } +func (config *Config) ListenPort() int { + _, portStr, err := net.SplitHostPort(config.ListenAddr) + if err != nil { + return 0 + } + port, err := strconv.Atoi(portStr) + if err != nil { + return 0 + } + return port +} + // Server manages all peer connections. type Server struct { // Config fields may not be modified while the server is running. @@ -542,15 +559,19 @@ func (srv *Server) setupLocalNode() error { return err } srv.nodedb = db + srv.localnode = enode.NewLocalNode(db, srv.PrivateKey, srv.logger) srv.localnode.SetFallbackIP(net.IP{127, 0, 0, 1}) - srv.updateLocalNodeStaticAddrCache() + // TODO: check conflicts for _, p := range srv.Protocols { for _, e := range p.Attributes { srv.localnode.Set(e) } } + + srv.updateLocalNodeStaticAddrCache() + switch srv.NAT.(type) { case nil: // No NAT interface, do nothing. @@ -616,6 +637,7 @@ func (srv *Server) setupDiscovery(ctx context.Context) error { } } srv.localnode.SetFallbackUDP(realaddr.Port) + srv.updateLocalNodeStaticAddrCache() // Discovery V4 var unhandled chan discover.ReadPacket @@ -718,6 +740,8 @@ func (srv *Server) setupListening(ctx context.Context) error { // Update the local node record and map the TCP listening port if NAT is configured. if tcp, ok := listener.Addr().(*net.TCPAddr); ok { srv.localnode.Set(enr.TCP(tcp.Port)) + srv.updateLocalNodeStaticAddrCache() + if !tcp.IP.IsLoopback() && (srv.NAT != nil) && srv.NAT.SupportsMapping() { srv.loopWG.Add(1) go func() { @@ -1160,6 +1184,7 @@ func (srv *Server) PeersInfo() []*PeerInfo { for _, peer := range srv.Peers() { if peer != nil { infos = append(infos, peer.Info()) + peer.ResetDiagnosticsCounters() } } // Sort the result array alphabetically by node identifier @@ -1172,3 +1197,17 @@ func (srv *Server) PeersInfo() []*PeerInfo { } return infos } + +// PeersInfo returns an array of metadata objects describing connected peers. +func (srv *Server) DiagnosticsPeersInfo() map[string]*diagnostics.PeerStatistics { + // Gather all the generic and sub-protocol specific infos + infos := make(map[string]*diagnostics.PeerStatistics) + for _, peer := range srv.Peers() { + if peer != nil { + infos[peer.ID().String()] = peer.DiagInfo() + peer.ResetDiagnosticsCounters() + } + } + + return infos +} diff --git a/p2p/transport.go b/p2p/transport.go index 6eceacb9afe..b2223cb716f 100644 --- a/p2p/transport.go +++ b/p2p/transport.go @@ -20,13 +20,13 @@ import ( "bytes" "crypto/ecdsa" "fmt" + "github.com/ledgerwatch/erigon-lib/common" "io" "net" "strings" "sync" "time" - "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/common/bitutil" "github.com/ledgerwatch/erigon/p2p/rlpx" "github.com/ledgerwatch/erigon/rlp" diff --git a/params/bootnodes.go b/params/bootnodes.go index 43d40b30968..31b31f2ccf8 100644 --- a/params/bootnodes.go +++ b/params/bootnodes.go @@ -17,9 +17,8 @@ package params import ( + "github.com/ledgerwatch/erigon-lib/chain/networkname" libcommon "github.com/ledgerwatch/erigon-lib/common" - - "github.com/ledgerwatch/erigon/params/networkname" ) // MainnetBootnodes are the enode URLs of the P2P bootstrap nodes running on diff --git a/params/chainspecs/bor-devnet.json b/params/chainspecs/bor-devnet.json index 376663aa360..e41007f9535 100644 --- a/params/chainspecs/bor-devnet.json +++ b/params/chainspecs/bor-devnet.json @@ -12,8 +12,10 @@ "muirGlacierBlock": 0, "berlinBlock": 0, "londonBlock": 0, - "eip1559FeeCollectorTransition": 23850000, - "eip1559FeeCollector": "0x70bca57f4579f58670ab2d18ef16e02c17553c38", + "burntContract": { + "22640000": "0x70bcA57F4579f58670aB2d18Ef16e02C17553C38", + "41874000": "0x617b94CCCC2511808A3C9478ebb96f455CF167aA" + }, "bor": { "period": { "0": 2 @@ -33,15 +35,22 @@ "validatorContract": "0x0000000000000000000000000000000000001000", "stateReceiverContract": "0x0000000000000000000000000000000000001001", "blockAlloc": { - "30": { + "0": { "0000000000000000000000000000000000001010": { "balance": "0x0", "code": "0x60806040526004361061019c5760003560e01c806377d32e94116100ec578063acd06cb31161008a578063e306f77911610064578063e306f77914610a7b578063e614d0d614610aa6578063f2fde38b14610ad1578063fc0c546a14610b225761019c565b8063acd06cb31461097a578063b789543c146109cd578063cc79f97b14610a505761019c565b80639025e64c116100c65780639025e64c146107c957806395d89b4114610859578063a9059cbb146108e9578063abceeba21461094f5761019c565b806377d32e94146106315780638da5cb5b146107435780638f32d59b1461079a5761019c565b806347e7ef24116101595780637019d41a116101335780637019d41a1461053357806370a082311461058a578063715018a6146105ef578063771282f6146106065761019c565b806347e7ef2414610410578063485cc9551461046b57806360f96a8f146104dc5761019c565b806306fdde03146101a15780631499c5921461023157806318160ddd1461028257806319d27d9c146102ad5780632e1a7d4d146103b1578063313ce567146103df575b600080fd5b3480156101ad57600080fd5b506101b6610b79565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101f65780820151818401526020810190506101db565b50505050905090810190601f1680156102235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561023d57600080fd5b506102806004803603602081101561025457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bb6565b005b34801561028e57600080fd5b50610297610c24565b6040518082815260200191505060405180910390f35b3480156102b957600080fd5b5061036f600480360360a08110156102d057600080fd5b81019080803590602001906401000000008111156102ed57600080fd5b8201836020820111156102ff57600080fd5b8035906020019184600183028401116401000000008311171561032157600080fd5b9091929391929390803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c3a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103dd600480360360208110156103c757600080fd5b8101908080359060200190929190505050610caa565b005b3480156103eb57600080fd5b506103f4610dfc565b604051808260ff1660ff16815260200191505060405180910390f35b34801561041c57600080fd5b506104696004803603604081101561043357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e05565b005b34801561047757600080fd5b506104da6004803603604081101561048e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fc1565b005b3480156104e857600080fd5b506104f1611090565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561053f57600080fd5b506105486110b6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561059657600080fd5b506105d9600480360360208110156105ad57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110dc565b6040518082815260200191505060405180910390f35b3480156105fb57600080fd5b506106046110fd565b005b34801561061257600080fd5b5061061b6111cd565b6040518082815260200191505060405180910390f35b34801561063d57600080fd5b506107016004803603604081101561065457600080fd5b81019080803590602001909291908035906020019064010000000081111561067b57600080fd5b82018360208201111561068d57600080fd5b803590602001918460018302840111640100000000831117156106af57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506111d3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561074f57600080fd5b50610758611358565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107a657600080fd5b506107af611381565b604051808215151515815260200191505060405180910390f35b3480156107d557600080fd5b506107de6113d8565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561081e578082015181840152602081019050610803565b50505050905090810190601f16801561084b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561086557600080fd5b5061086e611411565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108ae578082015181840152602081019050610893565b50505050905090810190601f1680156108db5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610935600480360360408110156108ff57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061144e565b604051808215151515815260200191505060405180910390f35b34801561095b57600080fd5b50610964611474565b6040518082815260200191505060405180910390f35b34801561098657600080fd5b506109b36004803603602081101561099d57600080fd5b8101908080359060200190929190505050611501565b604051808215151515815260200191505060405180910390f35b3480156109d957600080fd5b50610a3a600480360360808110156109f057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190505050611521565b6040518082815260200191505060405180910390f35b348015610a5c57600080fd5b50610a65611541565b6040518082815260200191505060405180910390f35b348015610a8757600080fd5b50610a90611546565b6040518082815260200191505060405180910390f35b348015610ab257600080fd5b50610abb61154c565b6040518082815260200191505060405180910390f35b348015610add57600080fd5b50610b2060048036036020811015610af457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115d9565b005b348015610b2e57600080fd5b50610b376115f6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60606040518060400160405280600b81526020017f4d6174696320546f6b656e000000000000000000000000000000000000000000815250905090565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f44697361626c656420666561747572650000000000000000000000000000000081525060200191505060405180910390fd5b6000601260ff16600a0a6402540be40002905090565b60006040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f44697361626c656420666561747572650000000000000000000000000000000081525060200191505060405180910390fd5b60003390506000610cba826110dc565b9050610cd18360065461161c90919063ffffffff16565b600681905550600083118015610ce657508234145b610d58576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f496e73756666696369656e7420616d6f756e740000000000000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167febff2602b3f468259e1e99f613fed6691f3a6526effe6ef3e768ba7ae7a36c4f8584610dd4876110dc565b60405180848152602001838152602001828152602001935050505060405180910390a3505050565b60006012905090565b610e0d611381565b610e1657600080fd5b600081118015610e535750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b610ea8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180611da76023913960400191505060405180910390fd5b6000610eb3836110dc565b905060008390508073ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f19350505050158015610f00573d6000803e3d6000fd5b50610f168360065461163c90919063ffffffff16565b6006819055508373ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f4e2ca0515ed1aef1395f66b5303bb5d6f1bf9d61a353fa53f73f8ac9973fa9f68585610f98896110dc565b60405180848152602001838152602001828152602001935050505060405180910390a350505050565b600760009054906101000a900460ff1615611027576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180611d846023913960400191505060405180910390fd5b6001600760006101000a81548160ff02191690831515021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061108c8261165b565b5050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008173ffffffffffffffffffffffffffffffffffffffff16319050919050565b611105611381565b61110e57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60065481565b60008060008060418551146111ee5760009350505050611352565b602085015192506040850151915060ff6041860151169050601b8160ff16101561121957601b810190505b601b8160ff16141580156112315750601c8160ff1614155b156112425760009350505050611352565b60018682858560405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa15801561129f573d6000803e3d6000fd5b505050602060405103519350600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561134e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4572726f7220696e2065637265636f766572000000000000000000000000000081525060200191505060405180910390fd5b5050505b92915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b6040518060400160405280600181526020017f890000000000000000000000000000000000000000000000000000000000000081525081565b60606040518060400160405280600581526020017f4d41544943000000000000000000000000000000000000000000000000000000815250905090565b6000813414611460576000905061146e565b61146b338484611753565b90505b92915050565b6040518060800160405280605b8152602001611e1c605b91396040516020018082805190602001908083835b602083106114c357805182526020820191506020810190506020830392506114a0565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012081565b60056020528060005260406000206000915054906101000a900460ff1681565b600061153761153286868686611b10565b611be6565b9050949350505050565b608981565b60015481565b604051806080016040528060528152602001611dca605291396040516020018082805190602001908083835b6020831061159b5780518252602082019150602081019050602083039250611578565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012081565b6115e1611381565b6115ea57600080fd5b6115f38161165b565b50565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008282111561162b57600080fd5b600082840390508091505092915050565b60008082840190508381101561165157600080fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561169557600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000803073ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156117d357600080fd5b505afa1580156117e7573d6000803e3d6000fd5b505050506040513d60208110156117fd57600080fd5b8101908080519060200190929190505050905060003073ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561188f57600080fd5b505afa1580156118a3573d6000803e3d6000fd5b505050506040513d60208110156118b957600080fd5b810190808051906020019092919050505090506118d7868686611c30565b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fe6497e3ee548a3372136af2fcb0696db31fc6cf20260707645068bd3fe97f3c48786863073ffffffffffffffffffffffffffffffffffffffff166370a082318e6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156119df57600080fd5b505afa1580156119f3573d6000803e3d6000fd5b505050506040513d6020811015611a0957600080fd5b81019080805190602001909291905050503073ffffffffffffffffffffffffffffffffffffffff166370a082318e6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611a9757600080fd5b505afa158015611aab573d6000803e3d6000fd5b505050506040513d6020811015611ac157600080fd5b8101908080519060200190929190505050604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390a46001925050509392505050565b6000806040518060800160405280605b8152602001611e1c605b91396040516020018082805190602001908083835b60208310611b625780518252602082019150602081019050602083039250611b3f565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120905060405181815273ffffffffffffffffffffffffffffffffffffffff8716602082015285604082015284606082015283608082015260a0812092505081915050949350505050565b60008060015490506040517f190100000000000000000000000000000000000000000000000000000000000081528160028201528360228201526042812092505081915050919050565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611cd2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f63616e27742073656e6420746f204d524332300000000000000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611d18573d6000803e3d6000fd5b508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350505056fe54686520636f6e747261637420697320616c726561647920696e697469616c697a6564496e73756666696369656e7420616d6f756e74206f7220696e76616c69642075736572454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429546f6b656e5472616e736665724f726465722861646472657373207370656e6465722c75696e7432353620746f6b656e49644f72416d6f756e742c6279746573333220646174612c75696e743235362065787069726174696f6e29a265627a7a72315820a4a6f71a98ac3fc613c3a8f1e2e11b9eb9b6b39f125f7d9508916c2b8fb02c7164736f6c63430005100032" } + }, + "41874000": { + "0x0000000000000000000000000000000000001001": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b506004361061005e576000357c01000000000000000000000000000000000000000000000000000000009004806319494a17146100635780633434735f146100fe5780635407ca6714610148575b600080fd5b6100e46004803603604081101561007957600080fd5b8101908080359060200190929190803590602001906401000000008111156100a057600080fd5b8201836020820111156100b257600080fd5b803590602001918460018302840111640100000000831117156100d457600080fd5b9091929391929390505050610166565b604051808215151515815260200191505060405180910390f35b6101066104d3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101506104eb565b6040518082815260200191505060405180910390f35b600073fffffffffffffffffffffffffffffffffffffffe73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461021d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4e6f742053797374656d2041646465737321000000000000000000000000000081525060200191505060405180910390fd5b606061027461026f85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506104f1565b61051f565b905060006102958260008151811061028857fe5b60200260200101516105fc565b90508060016000540114610311576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f537461746549647320617265206e6f742073657175656e7469616c000000000081525060200191505060405180910390fd5b600080815480929190600101919050555060006103418360018151811061033457fe5b602002602001015161066d565b905060606103628460028151811061035557fe5b6020026020010151610690565b905061036d8261071c565b156104c8576000624c4b409050606084836040516024018083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156103c75780820151818401526020810190506103ac565b50505050905090810190601f1680156103f45780820380516001836020036101000a031916815260200191505b5093505050506040516020818303038152906040527f26c53bea000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050905060008082516020840160008887f19650847f5a22725590b0a51c923940223f7458512164b1113359a735e86e7f27f44791ee88604051808215151515815260200191505060405180910390a250505b505050509392505050565b73fffffffffffffffffffffffffffffffffffffffe81565b60005481565b6104f961099c565b600060208301905060405180604001604052808451815260200182815250915050919050565b606061052a82610735565b61053357600080fd5b600061053e83610783565b905060608160405190808252806020026020018201604052801561057c57816020015b6105696109b6565b8152602001906001900390816105615790505b509050600061058e85602001516107f4565b8560200151019050600080600090505b848110156105ef576105af8361087d565b91506040518060400160405280838152602001848152508482815181106105d257fe5b60200260200101819052508183019250808060010191505061059e565b5082945050505050919050565b600080826000015111801561061657506021826000015111155b61061f57600080fd5b600061062e83602001516107f4565b9050600081846000015103905060008083866020015101905080519150602083101561066157826020036101000a820491505b81945050505050919050565b6000601582600001511461068057600080fd5b610689826105fc565b9050919050565b606060008260000151116106a357600080fd5b60006106b283602001516107f4565b905060008184600001510390506060816040519080825280601f01601f1916602001820160405280156106f45781602001600182028038833980820191505090505b5090506000816020019050610710848760200151018285610935565b81945050505050919050565b600080823b905060008163ffffffff1611915050919050565b6000808260000151141561074c576000905061077e565b60008083602001519050805160001a915060c060ff168260ff1610156107775760009250505061077e565b6001925050505b919050565b6000808260000151141561079a57600090506107ef565b600080905060006107ae84602001516107f4565b84602001510190506000846000015185602001510190505b808210156107e8576107d78261087d565b8201915082806001019350506107c6565b8293505050505b919050565b600080825160001a9050608060ff16811015610814576000915050610878565b60b860ff16811080610839575060c060ff168110158015610838575060f860ff1681105b5b15610848576001915050610878565b60c060ff168110156108685760018060b80360ff16820301915050610878565b60018060f80360ff168203019150505b919050565b6000806000835160001a9050608060ff1681101561089e576001915061092b565b60b860ff168110156108bb576001608060ff16820301915061092a565b60c060ff168110156108eb5760b78103600185019450806020036101000a85510460018201810193505050610929565b60f860ff1681101561090857600160c060ff168203019150610928565b60f78103600185019450806020036101000a855104600182018101935050505b5b5b5b8192505050919050565b600081141561094357610997565b5b602060ff1681106109735782518252602060ff1683019250602060ff1682019150602060ff1681039050610944565b6000600182602060ff16036101000a03905080198451168184511681811785525050505b505050565b604051806040016040528060008152602001600081525090565b60405180604001604052806000815260200160008152509056fea265627a7a723158208f1ea6fcf63d6911ac5dbfe340be1029614581802c6a750e7d6354b32ce6647c64736f6c63430005110032" + } } }, "jaipurBlock": 0, "delhiBlock": 0, - "indoreBlock": 0 + "indoreBlock": 0, + "agraBlock": 100 } } diff --git a/params/chainspecs/bor-mainnet.json b/params/chainspecs/bor-mainnet.json index 87a22d389b3..e022f6642ba 100644 --- a/params/chainspecs/bor-mainnet.json +++ b/params/chainspecs/bor-mainnet.json @@ -12,8 +12,9 @@ "muirGlacierBlock": 3395000, "berlinBlock": 14750000, "londonBlock": 23850000, - "eip1559FeeCollectorTransition": 23850000, - "eip1559FeeCollector": "0x70bca57f4579f58670ab2d18ef16e02c17553c38", + "burntContract": { + "23850000": "0x70bca57f4579f58670ab2d18ef16e02c17553c38" + }, "bor": { "period": { "0": 2 diff --git a/params/chainspecs/chiado.json b/params/chainspecs/chiado.json index fc65f2d7170..c1f2acf4be8 100644 --- a/params/chainspecs/chiado.json +++ b/params/chainspecs/chiado.json @@ -11,8 +11,9 @@ "istanbulBlock": 0, "berlinBlock": 0, "londonBlock": 0, - "eip1559FeeCollectorTransition": 0, - "eip1559FeeCollector": "0x1559000000000000000000000000000000000000", + "burntContract": { + "0": "0x1559000000000000000000000000000000000000" + }, "terminalTotalDifficulty": 231707791542740786049188744689299064356246512, "terminalTotalDifficultyPassed": true, "shanghaiTime": 1684934220, diff --git a/params/chainspecs/gnosis.json b/params/chainspecs/gnosis.json index ad80ab8a5d7..a547608954e 100644 --- a/params/chainspecs/gnosis.json +++ b/params/chainspecs/gnosis.json @@ -11,8 +11,9 @@ "istanbulBlock": 7298030, "berlinBlock": 16101500, "londonBlock": 19040000, - "eip1559FeeCollectorTransition": 19040000, - "eip1559FeeCollector": "0x6BBe78ee9e474842Dbd4AB4987b3CeFE88426A92", + "burntContract": { + "19040000": "0x6BBe78ee9e474842Dbd4AB4987b3CeFE88426A92" + }, "terminalTotalDifficulty": 8626000000000000000000058750000000000000000000, "terminalTotalDifficultyPassed": true, "shanghaiTime": 1690889660, diff --git a/params/chainspecs/mumbai.json b/params/chainspecs/mumbai.json index 3bd9d8ba6c7..3a61eb1acd1 100644 --- a/params/chainspecs/mumbai.json +++ b/params/chainspecs/mumbai.json @@ -12,8 +12,10 @@ "muirGlacierBlock": 2722000, "berlinBlock": 13996000, "londonBlock": 22640000, - "eip1559FeeCollectorTransition": 22640000, - "eip1559FeeCollector": "0x70bcA57F4579f58670aB2d18Ef16e02C17553C38", + "burntContract": { + "22640000": "0x70bcA57F4579f58670aB2d18Ef16e02C17553C38", + "41874000": "0x617b94CCCC2511808A3C9478ebb96f455CF167aA" + }, "bor": { "period": { "0": 2, @@ -45,10 +47,17 @@ "balance": "0x0", "code": "0x60806040526004361061019c5760003560e01c806377d32e94116100ec578063acd06cb31161008a578063e306f77911610064578063e306f77914610a7b578063e614d0d614610aa6578063f2fde38b14610ad1578063fc0c546a14610b225761019c565b8063acd06cb31461097a578063b789543c146109cd578063cc79f97b14610a505761019c565b80639025e64c116100c65780639025e64c146107c957806395d89b4114610859578063a9059cbb146108e9578063abceeba21461094f5761019c565b806377d32e94146106315780638da5cb5b146107435780638f32d59b1461079a5761019c565b806347e7ef24116101595780637019d41a116101335780637019d41a1461053357806370a082311461058a578063715018a6146105ef578063771282f6146106065761019c565b806347e7ef2414610410578063485cc9551461046b57806360f96a8f146104dc5761019c565b806306fdde03146101a15780631499c5921461023157806318160ddd1461028257806319d27d9c146102ad5780632e1a7d4d146103b1578063313ce567146103df575b600080fd5b3480156101ad57600080fd5b506101b6610b79565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101f65780820151818401526020810190506101db565b50505050905090810190601f1680156102235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561023d57600080fd5b506102806004803603602081101561025457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bb6565b005b34801561028e57600080fd5b50610297610c24565b6040518082815260200191505060405180910390f35b3480156102b957600080fd5b5061036f600480360360a08110156102d057600080fd5b81019080803590602001906401000000008111156102ed57600080fd5b8201836020820111156102ff57600080fd5b8035906020019184600183028401116401000000008311171561032157600080fd5b9091929391929390803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c3a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103dd600480360360208110156103c757600080fd5b8101908080359060200190929190505050610caa565b005b3480156103eb57600080fd5b506103f4610dfc565b604051808260ff1660ff16815260200191505060405180910390f35b34801561041c57600080fd5b506104696004803603604081101561043357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e05565b005b34801561047757600080fd5b506104da6004803603604081101561048e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fc1565b005b3480156104e857600080fd5b506104f1611090565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561053f57600080fd5b506105486110b6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561059657600080fd5b506105d9600480360360208110156105ad57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110dc565b6040518082815260200191505060405180910390f35b3480156105fb57600080fd5b506106046110fd565b005b34801561061257600080fd5b5061061b6111cd565b6040518082815260200191505060405180910390f35b34801561063d57600080fd5b506107016004803603604081101561065457600080fd5b81019080803590602001909291908035906020019064010000000081111561067b57600080fd5b82018360208201111561068d57600080fd5b803590602001918460018302840111640100000000831117156106af57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506111d3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561074f57600080fd5b50610758611358565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107a657600080fd5b506107af611381565b604051808215151515815260200191505060405180910390f35b3480156107d557600080fd5b506107de6113d8565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561081e578082015181840152602081019050610803565b50505050905090810190601f16801561084b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561086557600080fd5b5061086e611411565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108ae578082015181840152602081019050610893565b50505050905090810190601f1680156108db5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610935600480360360408110156108ff57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061144e565b604051808215151515815260200191505060405180910390f35b34801561095b57600080fd5b50610964611474565b6040518082815260200191505060405180910390f35b34801561098657600080fd5b506109b36004803603602081101561099d57600080fd5b8101908080359060200190929190505050611501565b604051808215151515815260200191505060405180910390f35b3480156109d957600080fd5b50610a3a600480360360808110156109f057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190505050611521565b6040518082815260200191505060405180910390f35b348015610a5c57600080fd5b50610a65611541565b6040518082815260200191505060405180910390f35b348015610a8757600080fd5b50610a90611548565b6040518082815260200191505060405180910390f35b348015610ab257600080fd5b50610abb61154e565b6040518082815260200191505060405180910390f35b348015610add57600080fd5b50610b2060048036036020811015610af457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115db565b005b348015610b2e57600080fd5b50610b376115f8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60606040518060400160405280600b81526020017f4d6174696320546f6b656e000000000000000000000000000000000000000000815250905090565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f44697361626c656420666561747572650000000000000000000000000000000081525060200191505060405180910390fd5b6000601260ff16600a0a6402540be40002905090565b60006040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f44697361626c656420666561747572650000000000000000000000000000000081525060200191505060405180910390fd5b60003390506000610cba826110dc565b9050610cd18360065461161e90919063ffffffff16565b600681905550600083118015610ce657508234145b610d58576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f496e73756666696369656e7420616d6f756e740000000000000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167febff2602b3f468259e1e99f613fed6691f3a6526effe6ef3e768ba7ae7a36c4f8584610dd4876110dc565b60405180848152602001838152602001828152602001935050505060405180910390a3505050565b60006012905090565b610e0d611381565b610e1657600080fd5b600081118015610e535750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b610ea8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180611da96023913960400191505060405180910390fd5b6000610eb3836110dc565b905060008390508073ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f19350505050158015610f00573d6000803e3d6000fd5b50610f168360065461163e90919063ffffffff16565b6006819055508373ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f4e2ca0515ed1aef1395f66b5303bb5d6f1bf9d61a353fa53f73f8ac9973fa9f68585610f98896110dc565b60405180848152602001838152602001828152602001935050505060405180910390a350505050565b600760009054906101000a900460ff1615611027576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180611d866023913960400191505060405180910390fd5b6001600760006101000a81548160ff02191690831515021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061108c8261165d565b5050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008173ffffffffffffffffffffffffffffffffffffffff16319050919050565b611105611381565b61110e57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60065481565b60008060008060418551146111ee5760009350505050611352565b602085015192506040850151915060ff6041860151169050601b8160ff16101561121957601b810190505b601b8160ff16141580156112315750601c8160ff1614155b156112425760009350505050611352565b60018682858560405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa15801561129f573d6000803e3d6000fd5b505050602060405103519350600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561134e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4572726f7220696e2065637265636f766572000000000000000000000000000081525060200191505060405180910390fd5b5050505b92915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b6040518060400160405280600381526020017f013881000000000000000000000000000000000000000000000000000000000081525081565b60606040518060400160405280600581526020017f4d41544943000000000000000000000000000000000000000000000000000000815250905090565b6000813414611460576000905061146e565b61146b338484611755565b90505b92915050565b6040518060800160405280605b8152602001611e1e605b91396040516020018082805190602001908083835b602083106114c357805182526020820191506020810190506020830392506114a0565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012081565b60056020528060005260406000206000915054906101000a900460ff1681565b600061153761153286868686611b12565b611be8565b9050949350505050565b6201388181565b60015481565b604051806080016040528060528152602001611dcc605291396040516020018082805190602001908083835b6020831061159d578051825260208201915060208101905060208303925061157a565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012081565b6115e3611381565b6115ec57600080fd5b6115f58161165d565b50565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008282111561162d57600080fd5b600082840390508091505092915050565b60008082840190508381101561165357600080fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561169757600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000803073ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156117d557600080fd5b505afa1580156117e9573d6000803e3d6000fd5b505050506040513d60208110156117ff57600080fd5b8101908080519060200190929190505050905060003073ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561189157600080fd5b505afa1580156118a5573d6000803e3d6000fd5b505050506040513d60208110156118bb57600080fd5b810190808051906020019092919050505090506118d9868686611c32565b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fe6497e3ee548a3372136af2fcb0696db31fc6cf20260707645068bd3fe97f3c48786863073ffffffffffffffffffffffffffffffffffffffff166370a082318e6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156119e157600080fd5b505afa1580156119f5573d6000803e3d6000fd5b505050506040513d6020811015611a0b57600080fd5b81019080805190602001909291905050503073ffffffffffffffffffffffffffffffffffffffff166370a082318e6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611a9957600080fd5b505afa158015611aad573d6000803e3d6000fd5b505050506040513d6020811015611ac357600080fd5b8101908080519060200190929190505050604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390a46001925050509392505050565b6000806040518060800160405280605b8152602001611e1e605b91396040516020018082805190602001908083835b60208310611b645780518252602082019150602081019050602083039250611b41565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120905060405181815273ffffffffffffffffffffffffffffffffffffffff8716602082015285604082015284606082015283608082015260a0812092505081915050949350505050565b60008060015490506040517f190100000000000000000000000000000000000000000000000000000000000081528160028201528360228201526042812092505081915050919050565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611cd4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f63616e27742073656e6420746f204d524332300000000000000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611d1a573d6000803e3d6000fd5b508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350505056fe54686520636f6e747261637420697320616c726561647920696e697469616c697a6564496e73756666696369656e7420616d6f756e74206f7220696e76616c69642075736572454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429546f6b656e5472616e736665724f726465722861646472657373207370656e6465722c75696e7432353620746f6b656e49644f72416d6f756e742c6279746573333220646174612c75696e743235362065787069726174696f6e29a265627a7a72315820ccd6c2a9c259832bbb367986ee06cd87af23022681b0cb22311a864b701d939564736f6c63430005100032" } + }, + "41874000": { + "0x0000000000000000000000000000000000001001": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b506004361061005e576000357c01000000000000000000000000000000000000000000000000000000009004806319494a17146100635780633434735f146100fe5780635407ca6714610148575b600080fd5b6100e46004803603604081101561007957600080fd5b8101908080359060200190929190803590602001906401000000008111156100a057600080fd5b8201836020820111156100b257600080fd5b803590602001918460018302840111640100000000831117156100d457600080fd5b9091929391929390505050610166565b604051808215151515815260200191505060405180910390f35b6101066104d3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101506104eb565b6040518082815260200191505060405180910390f35b600073fffffffffffffffffffffffffffffffffffffffe73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461021d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4e6f742053797374656d2041646465737321000000000000000000000000000081525060200191505060405180910390fd5b606061027461026f85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506104f1565b61051f565b905060006102958260008151811061028857fe5b60200260200101516105fc565b90508060016000540114610311576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f537461746549647320617265206e6f742073657175656e7469616c000000000081525060200191505060405180910390fd5b600080815480929190600101919050555060006103418360018151811061033457fe5b602002602001015161066d565b905060606103628460028151811061035557fe5b6020026020010151610690565b905061036d8261071c565b156104c8576000624c4b409050606084836040516024018083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156103c75780820151818401526020810190506103ac565b50505050905090810190601f1680156103f45780820380516001836020036101000a031916815260200191505b5093505050506040516020818303038152906040527f26c53bea000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050905060008082516020840160008887f19650847f5a22725590b0a51c923940223f7458512164b1113359a735e86e7f27f44791ee88604051808215151515815260200191505060405180910390a250505b505050509392505050565b73fffffffffffffffffffffffffffffffffffffffe81565b60005481565b6104f961099c565b600060208301905060405180604001604052808451815260200182815250915050919050565b606061052a82610735565b61053357600080fd5b600061053e83610783565b905060608160405190808252806020026020018201604052801561057c57816020015b6105696109b6565b8152602001906001900390816105615790505b509050600061058e85602001516107f4565b8560200151019050600080600090505b848110156105ef576105af8361087d565b91506040518060400160405280838152602001848152508482815181106105d257fe5b60200260200101819052508183019250808060010191505061059e565b5082945050505050919050565b600080826000015111801561061657506021826000015111155b61061f57600080fd5b600061062e83602001516107f4565b9050600081846000015103905060008083866020015101905080519150602083101561066157826020036101000a820491505b81945050505050919050565b6000601582600001511461068057600080fd5b610689826105fc565b9050919050565b606060008260000151116106a357600080fd5b60006106b283602001516107f4565b905060008184600001510390506060816040519080825280601f01601f1916602001820160405280156106f45781602001600182028038833980820191505090505b5090506000816020019050610710848760200151018285610935565b81945050505050919050565b600080823b905060008163ffffffff1611915050919050565b6000808260000151141561074c576000905061077e565b60008083602001519050805160001a915060c060ff168260ff1610156107775760009250505061077e565b6001925050505b919050565b6000808260000151141561079a57600090506107ef565b600080905060006107ae84602001516107f4565b84602001510190506000846000015185602001510190505b808210156107e8576107d78261087d565b8201915082806001019350506107c6565b8293505050505b919050565b600080825160001a9050608060ff16811015610814576000915050610878565b60b860ff16811080610839575060c060ff168110158015610838575060f860ff1681105b5b15610848576001915050610878565b60c060ff168110156108685760018060b80360ff16820301915050610878565b60018060f80360ff168203019150505b919050565b6000806000835160001a9050608060ff1681101561089e576001915061092b565b60b860ff168110156108bb576001608060ff16820301915061092a565b60c060ff168110156108eb5760b78103600185019450806020036101000a85510460018201810193505050610929565b60f860ff1681101561090857600160c060ff168203019150610928565b60f78103600185019450806020036101000a855104600182018101935050505b5b5b5b8192505050919050565b600081141561094357610997565b5b602060ff1681106109735782518252602060ff1683019250602060ff1682019150602060ff1681039050610944565b6000600182602060ff16036101000a03905080198451168184511681811785525050505b505050565b604051806040016040528060008152602001600081525090565b60405180604001604052806000815260200160008152509056fea265627a7a723158208f1ea6fcf63d6911ac5dbfe340be1029614581802c6a750e7d6354b32ce6647c64736f6c63430005110032" + } } }, "jaipurBlock": 22770000, "delhiBlock": 29638656, - "indoreBlock": 37075456 + "indoreBlock": 37075456, + "agraBlock": 41874000 } } diff --git a/params/config.go b/params/config.go index 851090f0238..c9ea236f520 100644 --- a/params/config.go +++ b/params/config.go @@ -24,10 +24,10 @@ import ( "path" "github.com/ledgerwatch/erigon-lib/chain" + "github.com/ledgerwatch/erigon-lib/chain/networkname" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon/common/paths" - "github.com/ledgerwatch/erigon/params/networkname" ) //go:embed chainspecs @@ -195,6 +195,8 @@ func ChainConfigByChainName(chain string) *chain.Config { switch chain { case networkname.MainnetChainName: return MainnetChainConfig + case networkname.DevChainName: + return AllCliqueProtocolChanges case networkname.HoleskyChainName: return HoleskyChainConfig case networkname.SepoliaChainName: @@ -267,16 +269,11 @@ func ChainConfigByGenesisHash(genesisHash libcommon.Hash) *chain.Config { } func NetworkIDByChainName(chain string) uint64 { - switch chain { - case networkname.DevChainName: - return 1337 - default: - config := ChainConfigByChainName(chain) - if config == nil { - return 0 - } - return config.ChainID.Uint64() + config := ChainConfigByChainName(chain) + if config == nil { + return 0 } + return config.ChainID.Uint64() } func IsChainPoS(chainConfig *chain.Config, currentTDProvider func() *big.Int) bool { diff --git a/params/config_test.go b/params/config_test.go index b448a1526f4..7617ead1ac0 100644 --- a/params/config_test.go +++ b/params/config_test.go @@ -21,7 +21,11 @@ import ( "reflect" "testing" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + "github.com/ledgerwatch/erigon-lib/chain" + "github.com/ledgerwatch/erigon-lib/common" ) func TestCheckCompatible(t *testing.T) { @@ -98,3 +102,34 @@ func TestCheckCompatible(t *testing.T) { } } } + +func TestGetBurntContract(t *testing.T) { + // Ethereum + assert.Nil(t, MainnetChainConfig.GetBurntContract(0)) + assert.Nil(t, MainnetChainConfig.GetBurntContract(10_000_000)) + + // Gnosis Chain + addr := GnosisChainConfig.GetBurntContract(19_040_000) + require.NotNil(t, addr) + assert.Equal(t, common.HexToAddress("0x6BBe78ee9e474842Dbd4AB4987b3CeFE88426A92"), *addr) + addr = GnosisChainConfig.GetBurntContract(19_040_001) + require.NotNil(t, addr) + assert.Equal(t, common.HexToAddress("0x6BBe78ee9e474842Dbd4AB4987b3CeFE88426A92"), *addr) + + // Mumbai + addr = MumbaiChainConfig.GetBurntContract(22640000) + require.NotNil(t, addr) + assert.Equal(t, common.HexToAddress("0x70bcA57F4579f58670aB2d18Ef16e02C17553C38"), *addr) + addr = MumbaiChainConfig.GetBurntContract(22640000 + 1) + require.NotNil(t, addr) + assert.Equal(t, common.HexToAddress("0x70bcA57F4579f58670aB2d18Ef16e02C17553C38"), *addr) + addr = MumbaiChainConfig.GetBurntContract(41874000 - 1) + require.NotNil(t, addr) + assert.Equal(t, common.HexToAddress("0x70bcA57F4579f58670aB2d18Ef16e02C17553C38"), *addr) + addr = MumbaiChainConfig.GetBurntContract(41874000) + require.NotNil(t, addr) + assert.Equal(t, common.HexToAddress("0x617b94CCCC2511808A3C9478ebb96f455CF167aA"), *addr) + addr = MumbaiChainConfig.GetBurntContract(41874000 + 1) + require.NotNil(t, addr) + assert.Equal(t, common.HexToAddress("0x617b94CCCC2511808A3C9478ebb96f455CF167aA"), *addr) +} diff --git a/params/version.go b/params/version.go index b8041f72db7..b03f148a8a4 100644 --- a/params/version.go +++ b/params/version.go @@ -32,7 +32,7 @@ var ( // see https://calver.org const ( VersionMajor = 2 // Major version component of the current release - VersionMinor = 53 // Minor version component of the current release + VersionMinor = 54 // Minor version component of the current release VersionMicro = 0 // Patch version component of the current release VersionModifier = "dev" // Modifier component of the current release VersionKeyCreated = "ErigonVersionCreated" diff --git a/rlp/iterator_test.go b/rlp/iterator_test.go index 6b927014e70..c33a86d4b46 100644 --- a/rlp/iterator_test.go +++ b/rlp/iterator_test.go @@ -17,9 +17,8 @@ package rlp import ( + "github.com/ledgerwatch/erigon-lib/common/hexutil" "testing" - - "github.com/ledgerwatch/erigon/common/hexutil" ) // TestIterator tests some basic things about the ListIterator. A more diff --git a/rpc/client_example_test.go b/rpc/client_example_test.go index 203f9786a42..c713ebddcc3 100644 --- a/rpc/client_example_test.go +++ b/rpc/client_example_test.go @@ -19,9 +19,9 @@ package rpc_test import ( "context" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "time" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/rpc" "github.com/ledgerwatch/log/v3" ) diff --git a/rpc/http.go b/rpc/http.go index f6812a6cfc3..a1938b585b2 100644 --- a/rpc/http.go +++ b/rpc/http.go @@ -108,21 +108,11 @@ func DialHTTP(endpoint string, logger log.Logger) (*Client, error) { func (c *Client) sendHTTP(ctx context.Context, op *requestOp, msg interface{}) error { hc := c.writeConn.(*httpConn) respBody, err := hc.doRequest(ctx, msg) - if respBody != nil { - defer respBody.Close() - } - if err != nil { - if respBody != nil { - buf := new(bytes.Buffer) - if _, err2 := buf.ReadFrom(respBody); err2 == nil { - return fmt.Errorf("%w: %v", err, buf.String()) - } - } return err } var respmsg jsonrpcMessage - if err := json.NewDecoder(respBody).Decode(&respmsg); err != nil { + if err := json.Unmarshal(respBody, &respmsg); err != nil { return err } op.resp <- &respmsg @@ -135,9 +125,8 @@ func (c *Client) sendBatchHTTP(ctx context.Context, op *requestOp, msgs []*jsonr if err != nil { return err } - defer respBody.Close() var respmsgs []jsonrpcMessage - if err := json.NewDecoder(respBody).Decode(&respmsgs); err != nil { + if err := json.Unmarshal(respBody, &respmsgs); err != nil { return err } for i := 0; i < len(respmsgs); i++ { @@ -146,7 +135,7 @@ func (c *Client) sendBatchHTTP(ctx context.Context, op *requestOp, msgs []*jsonr return nil } -func (hc *httpConn) doRequest(ctx context.Context, msg interface{}) (io.ReadCloser, error) { +func (hc *httpConn) doRequest(ctx context.Context, msg interface{}) ([]byte, error) { body, err := json.Marshal(msg) if err != nil { return nil, err @@ -167,10 +156,19 @@ func (hc *httpConn) doRequest(ctx context.Context, msg interface{}) (io.ReadClos if err != nil { return nil, err } + defer func() { _ = resp.Body.Close() }() + + // read the response body + respBody, err := io.ReadAll(resp.Body) + if err != nil { + return nil, err + } + if resp.StatusCode < 200 || resp.StatusCode >= 300 { - return resp.Body, errors.New(resp.Status) + return nil, fmt.Errorf("%s: %s", resp.Status, string(respBody)) } - return resp.Body, nil + + return respBody, nil } // httpServerConn turns a HTTP connection into a Conn. diff --git a/rpc/metrics.go b/rpc/metrics.go index cbfa7467f87..21af0ac9b1c 100644 --- a/rpc/metrics.go +++ b/rpc/metrics.go @@ -18,10 +18,9 @@ package rpc import ( "fmt" + "github.com/ledgerwatch/erigon-lib/metrics" "reflect" "strings" - - "github.com/ledgerwatch/erigon/metrics" ) var ( diff --git a/rpc/types.go b/rpc/types.go index 58683829c97..d3e872620e3 100644 --- a/rpc/types.go +++ b/rpc/types.go @@ -20,14 +20,13 @@ import ( "context" "encoding/json" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "math" "math/big" "strconv" "strings" libcommon "github.com/ledgerwatch/erigon-lib/common" - - "github.com/ledgerwatch/erigon/common/hexutil" ) // API describes the set of methods offered over the RPC interface diff --git a/rpc/websocket.go b/rpc/websocket.go index 1901a9f655a..ce945e656de 100644 --- a/rpc/websocket.go +++ b/rpc/websocket.go @@ -125,6 +125,10 @@ func (e wsHandshakeError) Error() string { return s } +func (e wsHandshakeError) Unwrap() error { + return e.err +} + func originIsAllowed(allowedOrigins mapset.Set[string], browserOrigin string, logger log.Logger) bool { it := allowedOrigins.Iterator() for origin := range it.C { diff --git a/spectest/case.go b/spectest/case.go index b541abe83b1..36efa1ade37 100644 --- a/spectest/case.go +++ b/spectest/case.go @@ -1,13 +1,13 @@ package spectest import ( + "github.com/ledgerwatch/erigon/cl/clparams" "github.com/ledgerwatch/erigon/cl/transition/machine" "io/fs" "os" "strings" "gfx.cafe/util/go/generic" - "github.com/ledgerwatch/erigon/cl/clparams" ) type TestCase struct { diff --git a/spectest/util.go b/spectest/util.go index 598bd83444d..b34ae6ced81 100644 --- a/spectest/util.go +++ b/spectest/util.go @@ -2,17 +2,16 @@ package spectest import ( "fmt" + clparams2 "github.com/ledgerwatch/erigon/cl/clparams" + "github.com/ledgerwatch/erigon/cl/cltypes" + "github.com/ledgerwatch/erigon/cl/phase1/core/state" + "github.com/ledgerwatch/erigon/cl/utils" "io/fs" "os" "gopkg.in/yaml.v3" "github.com/ledgerwatch/erigon-lib/types/ssz" - - "github.com/ledgerwatch/erigon/cl/clparams" - "github.com/ledgerwatch/erigon/cl/cltypes" - "github.com/ledgerwatch/erigon/cl/phase1/core/state" - "github.com/ledgerwatch/erigon/cl/utils" ) func ReadMeta(root fs.FS, name string, obj any) error { @@ -39,7 +38,7 @@ func ReadYml(root fs.FS, name string, obj any) error { return nil } -func ReadSsz(root fs.FS, version clparams.StateVersion, name string, obj ssz.Unmarshaler) error { +func ReadSsz(root fs.FS, version clparams2.StateVersion, name string, obj ssz.Unmarshaler) error { bts, err := fs.ReadFile(root, name) if err != nil { return fmt.Errorf("couldnt read meta: %w", err) @@ -47,16 +46,16 @@ func ReadSsz(root fs.FS, version clparams.StateVersion, name string, obj ssz.Unm return utils.DecodeSSZSnappy(obj, bts, int(version)) } -func ReadSszOld(root fs.FS, obj ssz.Unmarshaler, version clparams.StateVersion, name string) error { +func ReadSszOld(root fs.FS, obj ssz.Unmarshaler, version clparams2.StateVersion, name string) error { return ReadSsz(root, version, name, obj) } -func ReadBeaconState(root fs.FS, version clparams.StateVersion, name string) (*state.CachingBeaconState, error) { +func ReadBeaconState(root fs.FS, version clparams2.StateVersion, name string) (*state.CachingBeaconState, error) { sszSnappy, err := fs.ReadFile(root, name) if err != nil { return nil, err } - config := clparams.MainnetBeaconConfig + config := clparams2.MainnetBeaconConfig testState := state.New(&config) if err := utils.DecodeSSZSnappy(testState, sszSnappy, int(version)); err != nil { return nil, err @@ -64,7 +63,7 @@ func ReadBeaconState(root fs.FS, version clparams.StateVersion, name string) (*s return testState, nil } -func ReadBlock(root fs.FS, version clparams.StateVersion, index int) (*cltypes.SignedBeaconBlock, error) { +func ReadBlock(root fs.FS, version clparams2.StateVersion, index int) (*cltypes.SignedBeaconBlock, error) { var blockBytes []byte var err error blockBytes, err = fs.ReadFile(root, fmt.Sprintf("blocks_%d.ssz_snappy", index)) @@ -74,14 +73,14 @@ func ReadBlock(root fs.FS, version clparams.StateVersion, index int) (*cltypes.S if err != nil { return nil, err } - blk := cltypes.NewSignedBeaconBlock(&clparams.MainnetBeaconConfig) + blk := cltypes.NewSignedBeaconBlock(&clparams2.MainnetBeaconConfig) if err = utils.DecodeSSZSnappy(blk, blockBytes, int(version)); err != nil { return nil, err } return blk, nil } -func ReadAnchorBlock(root fs.FS, version clparams.StateVersion, name string) (*cltypes.BeaconBlock, error) { +func ReadAnchorBlock(root fs.FS, version clparams2.StateVersion, name string) (*cltypes.BeaconBlock, error) { var blockBytes []byte var err error blockBytes, err = fs.ReadFile(root, name) @@ -91,7 +90,7 @@ func ReadAnchorBlock(root fs.FS, version clparams.StateVersion, name string) (*c if err != nil { return nil, err } - blk := cltypes.NewBeaconBlock(&clparams.MainnetBeaconConfig) + blk := cltypes.NewBeaconBlock(&clparams2.MainnetBeaconConfig) if err = utils.DecodeSSZSnappy(blk, blockBytes, int(version)); err != nil { return nil, err } @@ -116,7 +115,7 @@ func ReadBlockSlot(root fs.FS, index int) (uint64, error) { } return ssz.UnmarshalUint64SSZ(blockBytes[100:108]), nil } -func ReadBlocks(root fs.FS, version clparams.StateVersion) ([]*cltypes.SignedBeaconBlock, error) { +func ReadBlocks(root fs.FS, version clparams2.StateVersion) ([]*cltypes.SignedBeaconBlock, error) { i := 0 blocks := []*cltypes.SignedBeaconBlock{} var err error @@ -126,7 +125,7 @@ func ReadBlocks(root fs.FS, version clparams.StateVersion) ([]*cltypes.SignedBea if err != nil { break } - blk := cltypes.NewSignedBeaconBlock(&clparams.MainnetBeaconConfig) + blk := cltypes.NewSignedBeaconBlock(&clparams2.MainnetBeaconConfig) if err = utils.DecodeSSZSnappy(blk, blockBytes, int(version)); err != nil { return nil, err } diff --git a/tests/block_test_util.go b/tests/block_test_util.go index 7d5296d7f6a..22a1b2b30ff 100644 --- a/tests/block_test_util.go +++ b/tests/block_test_util.go @@ -23,6 +23,7 @@ import ( "encoding/hex" "encoding/json" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "math/big" "reflect" "testing" @@ -39,7 +40,6 @@ import ( "github.com/ledgerwatch/log/v3" "github.com/ledgerwatch/erigon/common" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/common/math" "github.com/ledgerwatch/erigon/core" "github.com/ledgerwatch/erigon/core/rawdb" diff --git a/tests/bor/helper/miner.go b/tests/bor/helper/miner.go index 8c6d2c40c2a..32c81726c80 100644 --- a/tests/bor/helper/miner.go +++ b/tests/bor/helper/miner.go @@ -113,7 +113,7 @@ func InitMiner(ctx context.Context, genesis *types.Genesis, privKey *ecdsa.Priva return nil, nil, err } - downloaderConfig, err := downloadercfg.New(datadir.New(ddir), nodeCfg.Version, torrentLogLevel, downloadRate, uploadRate, utils.TorrentPortFlag.Value, utils.TorrentConnsPerFileFlag.Value, utils.TorrentDownloadSlotsFlag.Value, []string{}, "") + downloaderConfig, err := downloadercfg.New(datadir.New(ddir), nodeCfg.Version, torrentLogLevel, downloadRate, uploadRate, utils.TorrentPortFlag.Value, utils.TorrentConnsPerFileFlag.Value, utils.TorrentDownloadSlotsFlag.Value, []string{}, []string{}, "") if err != nil { return nil, nil, err } @@ -142,7 +142,6 @@ func InitMiner(ctx context.Context, genesis *types.Genesis, privKey *ecdsa.Priva RPCGasCap: 50000000, RPCTxFeeCap: 1, // 1 ether Snapshot: ethconfig.BlocksFreezing{NoDownloader: true}, - P2PEnabled: true, StateStream: true, } ethCfg.TxPool.DBDir = nodeCfg.Dirs.TxPool diff --git a/tests/bor/mining_test.go b/tests/bor/mining_test.go index 4568046f6b3..4ed69cd0dd4 100644 --- a/tests/bor/mining_test.go +++ b/tests/bor/mining_test.go @@ -12,6 +12,7 @@ import ( "time" "github.com/holiman/uint256" + "github.com/ledgerwatch/erigon-lib/chain/networkname" "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/common/fdlimit" "github.com/ledgerwatch/erigon/core/types" @@ -19,7 +20,6 @@ import ( "github.com/ledgerwatch/erigon/eth" "github.com/ledgerwatch/erigon/node" "github.com/ledgerwatch/erigon/params" - "github.com/ledgerwatch/erigon/params/networkname" "github.com/ledgerwatch/erigon/tests/bor/helper" "github.com/ledgerwatch/log/v3" diff --git a/tests/erigon-ext-test/.gitignore b/tests/erigon-ext-test/.gitignore new file mode 100644 index 00000000000..08cb523c182 --- /dev/null +++ b/tests/erigon-ext-test/.gitignore @@ -0,0 +1 @@ +go.sum diff --git a/tests/erigon-ext-test/go.mod b/tests/erigon-ext-test/go.mod new file mode 100644 index 00000000000..64cb7ad1672 --- /dev/null +++ b/tests/erigon-ext-test/go.mod @@ -0,0 +1,2 @@ +// this is a dummy file needed to exclude this folder from the root folder unit tests suite +// the actual go.mod for the test is generated by test.sh from go.mod.template diff --git a/tests/erigon-ext-test/go.mod.template b/tests/erigon-ext-test/go.mod.template new file mode 100644 index 00000000000..515b3b14281 --- /dev/null +++ b/tests/erigon-ext-test/go.mod.template @@ -0,0 +1,9 @@ +module example.com/erigon-ext-test + +go 1.20 + +require github.com/ledgerwatch/erigon $COMMIT_SHA + +replace github.com/ledgerwatch/erigon-lib => github.com/ledgerwatch/erigon/erigon-lib $COMMIT_SHA + +require github.com/ethereum/go-ethereum v1.13.3 diff --git a/tests/erigon-ext-test/main.go b/tests/erigon-ext-test/main.go new file mode 100644 index 00000000000..b8322f5973e --- /dev/null +++ b/tests/erigon-ext-test/main.go @@ -0,0 +1,18 @@ +package main + +import ( + geth_params "github.com/ethereum/go-ethereum/params" + // geth_crypto "github.com/ethereum/go-ethereum/crypto" + erigon_lib_common "github.com/ledgerwatch/erigon-lib/common" + erigon_crypto "github.com/ledgerwatch/erigon/crypto" + erigon_params "github.com/ledgerwatch/erigon/params" +) + +func main() { + println("Erigon version: ", erigon_params.Version) + println("geth version: ", geth_params.Version) + println("Erigon lib common eth Wei: ", erigon_lib_common.Wei) + println("Erigon crypto secp256k1 S256 BitSize: ", erigon_crypto.S256().Params().BitSize) + // not working due to duplicate symbols errors + // println("geth crypto secp256k1 S256 BitSize: ", geth_crypto.S256().Params().BitSize) +} diff --git a/tests/erigon-ext-test/test.sh b/tests/erigon-ext-test/test.sh new file mode 100755 index 00000000000..362028e5fe7 --- /dev/null +++ b/tests/erigon-ext-test/test.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +COMMIT_SHA="$1" + +sed "s/\$COMMIT_SHA/$COMMIT_SHA/" go.mod.template > go.mod + +rm -f go.sum +go mod tidy + +go run main.go diff --git a/tests/execution-spec-tests/berlin/eip2930_access_list/acl/access_list.json b/tests/execution-spec-tests/berlin/eip2930_access_list/acl/access_list.json index 0dc1716c15d..3caca4ffc53 100644 --- a/tests/execution-spec-tests/berlin/eip2930_access_list/acl/access_list.json +++ b/tests/execution-spec-tests/berlin/eip2930_access_list/acl/access_list.json @@ -1,7 +1,7 @@ { "000-fork=Berlin": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-2930.md", "reference-spec-version": "c9db53a936c5c9cbe2db32ba0d1b86c4c6e73534" }, @@ -112,7 +112,7 @@ }, "001-fork=London": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-2930.md", "reference-spec-version": "c9db53a936c5c9cbe2db32ba0d1b86c4c6e73534" }, diff --git a/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage/gas_usage.json b/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage/gas_usage.json index 877a2b82909..8948348c581 100644 --- a/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage/gas_usage.json +++ b/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage/gas_usage.json @@ -1,7 +1,7 @@ { "000-fork=Cancun-tload": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" }, @@ -131,7 +131,7 @@ }, "001-fork=Cancun-tstore_tload": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" }, @@ -261,7 +261,7 @@ }, "002-fork=Cancun-tstore_cold": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" }, @@ -391,7 +391,7 @@ }, "003-fork=Cancun-tstore_warm": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" }, diff --git a/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage/tload_after_sstore.json b/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage/tload_after_sstore.json index 9354bfda7a1..875a9fc7386 100644 --- a/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage/tload_after_sstore.json +++ b/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage/tload_after_sstore.json @@ -1,7 +1,7 @@ { "000-fork=Cancun": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" }, diff --git a/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage/tload_after_tstore.json b/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage/tload_after_tstore.json index 0cf28aaf39e..2df3e16f22b 100644 --- a/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage/tload_after_tstore.json +++ b/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage/tload_after_tstore.json @@ -1,7 +1,7 @@ { "000-fork=Cancun": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" }, diff --git a/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage/tload_after_tstore_is_zero.json b/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage/tload_after_tstore_is_zero.json index 51b6255ea0c..b6acd339d49 100644 --- a/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage/tload_after_tstore_is_zero.json +++ b/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage/tload_after_tstore_is_zero.json @@ -1,7 +1,7 @@ { "000-fork=Cancun": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" }, diff --git a/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage/transient_storage_unset_values.json b/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage/transient_storage_unset_values.json index 8893182d543..8c19ec02467 100644 --- a/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage/transient_storage_unset_values.json +++ b/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage/transient_storage_unset_values.json @@ -1,7 +1,7 @@ { "000-fork=Cancun": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" }, diff --git a/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage_create_contexts/contract_creation.json b/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage_create_contexts/contract_creation.json index b4dc0d5271d..ad4d26f8689 100644 --- a/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage_create_contexts/contract_creation.json +++ b/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage_create_contexts/contract_creation.json @@ -1,7 +1,7 @@ { "000-fork=Cancun-only_constructor_code-create": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" }, @@ -142,7 +142,7 @@ }, "001-fork=Cancun-only_constructor_code-create2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" }, @@ -283,7 +283,7 @@ }, "002-fork=Cancun-in_constructor_and_deployed_code-create": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" }, @@ -424,7 +424,7 @@ }, "003-fork=Cancun-in_constructor_and_deployed_code-create2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" }, @@ -565,7 +565,7 @@ }, "004-fork=Cancun-across_constructor_and_deployed_code_v0-create": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" }, @@ -707,7 +707,7 @@ }, "005-fork=Cancun-across_constructor_and_deployed_code_v0-create2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" }, @@ -849,7 +849,7 @@ }, "006-fork=Cancun-across_constructor_and_deployed_code_v1-create": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" }, @@ -992,7 +992,7 @@ }, "007-fork=Cancun-across_constructor_and_deployed_code_v1-create2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" }, @@ -1135,7 +1135,7 @@ }, "008-fork=Cancun-no_constructor_code-create": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" }, @@ -1276,7 +1276,7 @@ }, "009-fork=Cancun-no_constructor_code-create2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" }, diff --git a/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage_execution_contexts/subcall.json b/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage_execution_contexts/subcall.json index 6bbbe25cecd..2e98e1947ae 100644 --- a/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage_execution_contexts/subcall.json +++ b/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage_execution_contexts/subcall.json @@ -1,7 +1,7 @@ { "000-fork=Cancun-call": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" }, @@ -146,7 +146,7 @@ }, "001-fork=Cancun-staticcall_cant_call_tstore": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" }, @@ -288,7 +288,7 @@ }, "002-fork=Cancun-staticcall_cant_call_tstore_with_stack_underflow": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" }, @@ -430,7 +430,7 @@ }, "003-fork=Cancun-staticcalled_context_can_call_tload": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" }, @@ -573,7 +573,7 @@ }, "004-fork=Cancun-callcode": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" }, @@ -719,7 +719,7 @@ }, "005-fork=Cancun-delegatecall": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" }, @@ -865,7 +865,7 @@ }, "006-fork=Cancun-call_with_revert": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" }, @@ -1008,7 +1008,7 @@ }, "007-fork=Cancun-call_with_invalid": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" }, @@ -1151,7 +1151,7 @@ }, "008-fork=Cancun-call_with_stack_overflow": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" }, @@ -1294,7 +1294,7 @@ }, "009-fork=Cancun-call_with_tstore_stack_underflow": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" }, @@ -1437,7 +1437,7 @@ }, "010-fork=Cancun-call_with_tstore_stack_underflow_2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" }, @@ -1580,7 +1580,7 @@ }, "011-fork=Cancun-call_with_tload_stack_underflow": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" }, @@ -1723,7 +1723,7 @@ }, "012-fork=Cancun-call_with_out_of_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" }, @@ -1866,7 +1866,7 @@ }, "013-fork=Cancun-call_with_out_of_gas_2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" }, @@ -2009,7 +2009,7 @@ }, "014-fork=Cancun-callcode_with_revert": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" }, @@ -2152,7 +2152,7 @@ }, "015-fork=Cancun-callcode_with_invalid": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" }, @@ -2295,7 +2295,7 @@ }, "016-fork=Cancun-callcode_with_stack_overflow": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" }, @@ -2438,7 +2438,7 @@ }, "017-fork=Cancun-callcode_with_tstore_stack_underflow": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" }, @@ -2581,7 +2581,7 @@ }, "018-fork=Cancun-callcode_with_tstore_stack_underflow_2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" }, @@ -2724,7 +2724,7 @@ }, "019-fork=Cancun-callcode_with_tload_stack_underflow": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" }, @@ -2867,7 +2867,7 @@ }, "020-fork=Cancun-callcode_with_out_of_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" }, @@ -3010,7 +3010,7 @@ }, "021-fork=Cancun-callcode_with_out_of_gas_2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" }, @@ -3153,7 +3153,7 @@ }, "022-fork=Cancun-delegatecall_with_revert": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" }, @@ -3296,7 +3296,7 @@ }, "023-fork=Cancun-delegatecall_with_invalid": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" }, @@ -3439,7 +3439,7 @@ }, "024-fork=Cancun-delegatecall_with_stack_overflow": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" }, @@ -3582,7 +3582,7 @@ }, "025-fork=Cancun-delegatecall_with_tstore_stack_underflow": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" }, @@ -3725,7 +3725,7 @@ }, "026-fork=Cancun-delegatecall_with_tstore_stack_underflow_2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" }, @@ -3868,7 +3868,7 @@ }, "027-fork=Cancun-delegatecall_with_tload_stack_underflow": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" }, @@ -4011,7 +4011,7 @@ }, "028-fork=Cancun-delegatecall_with_out_of_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" }, @@ -4154,7 +4154,7 @@ }, "029-fork=Cancun-delegatecall_with_out_of_gas_2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" }, diff --git a/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage_reentrancy_contexts/reentrant_call.json b/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage_reentrancy_contexts/reentrant_call.json index 4f5cde46ceb..983c53f96ba 100644 --- a/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage_reentrancy_contexts/reentrant_call.json +++ b/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage_reentrancy_contexts/reentrant_call.json @@ -1,7 +1,7 @@ { "000-fork=Cancun-tstore_in_reentrant_call": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" }, @@ -133,7 +133,7 @@ }, "001-fork=Cancun-tload_after_reentrant_tstore": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" }, @@ -265,7 +265,7 @@ }, "002-fork=Cancun-manipulate_in_reentrant_call": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" }, @@ -398,7 +398,7 @@ }, "003-fork=Cancun-tstore_in_call_then_tload_return_in_staticcall": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" }, @@ -532,7 +532,7 @@ }, "004-fork=Cancun-tstore_before_revert_has_no_effect": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" }, @@ -663,7 +663,7 @@ }, "005-fork=Cancun-revert_undoes_all": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" }, @@ -794,7 +794,7 @@ }, "006-fork=Cancun-revert_undoes_tstorage_after_successful_call": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" }, @@ -926,7 +926,7 @@ }, "007-fork=Cancun-tstore_before_invalid_has_no_effect": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" }, @@ -1057,7 +1057,7 @@ }, "008-fork=Cancun-invalid_undoes_all": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" }, @@ -1188,7 +1188,7 @@ }, "009-fork=Cancun-invalid_undoes_tstorage_after_successful_call": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" }, diff --git a/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage_selfdestruct/reentrant_selfdestructing_call.json b/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage_selfdestruct/reentrant_selfdestructing_call.json index 14de3b2a5c5..5f2f0c50c65 100644 --- a/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage_selfdestruct/reentrant_selfdestructing_call.json +++ b/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage_selfdestruct/reentrant_selfdestructing_call.json @@ -1,7 +1,7 @@ { "000-fork=Cancun-tload_after_selfdestruct_pre_existing_contract": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" }, @@ -157,7 +157,7 @@ }, "001-fork=Cancun-tload_after_selfdestruct_new_contract": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" }, @@ -302,7 +302,7 @@ }, "002-fork=Cancun-tload_after_inner_selfdestruct_pre_existing_contract": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" }, @@ -457,7 +457,7 @@ }, "003-fork=Cancun-tload_after_inner_selfdestruct_new_contract": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" }, @@ -601,7 +601,7 @@ }, "004-fork=Cancun-tstore_after_selfdestruct_pre_existing_contract": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" }, @@ -758,7 +758,7 @@ }, "005-fork=Cancun-tstore_after_selfdestruct_new_contract": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" }, diff --git a/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/beacon_root_contract_calls.json b/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/beacon_root_contract_calls.json index 90d0866f213..5099a8041cb 100644 --- a/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/beacon_root_contract_calls.json +++ b/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/beacon_root_contract_calls.json @@ -1,7 +1,7 @@ { "000-fork=Cancun-call_type=CALL-call_value=1-valid_input=True-call_gas=100000-valid_call=True": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" }, @@ -131,7 +131,7 @@ }, "001-fork=Cancun-call_type=CALL-call_value=1-valid_input=True-call_gas=100001-valid_call=True": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" }, @@ -261,7 +261,7 @@ }, "002-fork=Cancun-call_type=CALL-call_value=0-valid_input=True-call_gas=100000-valid_call=True": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" }, @@ -391,7 +391,7 @@ }, "003-fork=Cancun-call_type=CALL-call_value=0-valid_input=True-call_gas=100001-valid_call=True": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" }, @@ -521,7 +521,7 @@ }, "004-fork=Cancun-call_type=CALLCODE-call_value=0-valid_input=False-call_gas=100000-valid_call=True": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" }, @@ -646,7 +646,7 @@ }, "005-fork=Cancun-call_type=CALLCODE-call_value=0-valid_input=False-call_gas=100001-valid_call=True": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" }, @@ -771,7 +771,7 @@ }, "006-fork=Cancun-call_type=CALLCODE-call_value=0-valid_input=False-call_gas=99999-valid_call=False": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" }, @@ -896,7 +896,7 @@ }, "007-fork=Cancun-call_type=DELEGATECALL-call_value=0-valid_input=False-call_gas=100000-valid_call=True": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" }, @@ -1021,7 +1021,7 @@ }, "008-fork=Cancun-call_type=DELEGATECALL-call_value=0-valid_input=False-call_gas=100001-valid_call=True": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" }, @@ -1146,7 +1146,7 @@ }, "009-fork=Cancun-call_type=DELEGATECALL-call_value=0-valid_input=False-call_gas=99999-valid_call=False": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" }, @@ -1271,7 +1271,7 @@ }, "010-fork=Cancun-call_type=STATICCALL-call_value=0-valid_input=True-call_gas=100000-valid_call=True": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" }, @@ -1401,7 +1401,7 @@ }, "011-fork=Cancun-call_type=STATICCALL-call_value=0-valid_input=True-call_gas=100001-valid_call=True": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" }, diff --git a/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/beacon_root_contract_timestamps.json b/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/beacon_root_contract_timestamps.json index 12c44a34d05..9debe5ffa1a 100644 --- a/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/beacon_root_contract_timestamps.json +++ b/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/beacon_root_contract_timestamps.json @@ -1,7 +1,7 @@ { "000-fork=Cancun-empty_system_address-auto_access_list=False-timestamp=12-valid_input=True": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" }, @@ -131,7 +131,7 @@ }, "001-fork=Cancun-empty_system_address-auto_access_list=False-timestamp=4294967296-valid_input=True": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" }, @@ -261,7 +261,7 @@ }, "002-fork=Cancun-empty_system_address-auto_access_list=False-timestamp=18446744073709551614-valid_input=True": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" }, @@ -391,7 +391,7 @@ }, "003-fork=Cancun-empty_system_address-auto_access_list=False-timestamp=18446744073709551615-valid_input=True": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" }, @@ -521,7 +521,7 @@ }, "004-fork=Cancun-empty_system_address-auto_access_list=True-timestamp=12-valid_input=True": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" }, @@ -659,7 +659,7 @@ }, "005-fork=Cancun-empty_system_address-auto_access_list=True-timestamp=4294967296-valid_input=True": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" }, @@ -797,7 +797,7 @@ }, "006-fork=Cancun-empty_system_address-auto_access_list=True-timestamp=18446744073709551614-valid_input=True": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" }, @@ -935,7 +935,7 @@ }, "007-fork=Cancun-empty_system_address-auto_access_list=True-timestamp=18446744073709551615-valid_input=True": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" }, @@ -1073,7 +1073,7 @@ }, "008-fork=Cancun-one_wei_system_address-auto_access_list=False-timestamp=12-valid_input=True": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" }, @@ -1215,7 +1215,7 @@ }, "009-fork=Cancun-one_wei_system_address-auto_access_list=False-timestamp=4294967296-valid_input=True": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" }, @@ -1357,7 +1357,7 @@ }, "010-fork=Cancun-one_wei_system_address-auto_access_list=False-timestamp=18446744073709551614-valid_input=True": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" }, @@ -1499,7 +1499,7 @@ }, "011-fork=Cancun-one_wei_system_address-auto_access_list=False-timestamp=18446744073709551615-valid_input=True": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" }, @@ -1641,7 +1641,7 @@ }, "012-fork=Cancun-one_wei_system_address-auto_access_list=True-timestamp=12-valid_input=True": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" }, @@ -1791,7 +1791,7 @@ }, "013-fork=Cancun-one_wei_system_address-auto_access_list=True-timestamp=4294967296-valid_input=True": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" }, @@ -1941,7 +1941,7 @@ }, "014-fork=Cancun-one_wei_system_address-auto_access_list=True-timestamp=18446744073709551614-valid_input=True": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" }, @@ -2091,7 +2091,7 @@ }, "015-fork=Cancun-one_wei_system_address-auto_access_list=True-timestamp=18446744073709551615-valid_input=True": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" }, @@ -2241,7 +2241,7 @@ }, "016-fork=Cancun-one_eth_system_address-auto_access_list=False-timestamp=12-valid_input=True": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" }, @@ -2383,7 +2383,7 @@ }, "017-fork=Cancun-one_eth_system_address-auto_access_list=False-timestamp=4294967296-valid_input=True": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" }, @@ -2525,7 +2525,7 @@ }, "018-fork=Cancun-one_eth_system_address-auto_access_list=False-timestamp=18446744073709551614-valid_input=True": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" }, @@ -2667,7 +2667,7 @@ }, "019-fork=Cancun-one_eth_system_address-auto_access_list=False-timestamp=18446744073709551615-valid_input=True": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" }, @@ -2809,7 +2809,7 @@ }, "020-fork=Cancun-one_eth_system_address-auto_access_list=True-timestamp=12-valid_input=True": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" }, @@ -2959,7 +2959,7 @@ }, "021-fork=Cancun-one_eth_system_address-auto_access_list=True-timestamp=4294967296-valid_input=True": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" }, @@ -3109,7 +3109,7 @@ }, "022-fork=Cancun-one_eth_system_address-auto_access_list=True-timestamp=18446744073709551614-valid_input=True": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" }, @@ -3259,7 +3259,7 @@ }, "023-fork=Cancun-one_eth_system_address-auto_access_list=True-timestamp=18446744073709551615-valid_input=True": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" }, diff --git a/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/beacon_root_equal_to_timestamp.json b/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/beacon_root_equal_to_timestamp.json index 74fb6495f68..635f3b36aef 100644 --- a/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/beacon_root_equal_to_timestamp.json +++ b/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/beacon_root_equal_to_timestamp.json @@ -1,7 +1,7 @@ { "000-fork=Cancun-auto_access_list=False-beacon_root=12-timestamp=12": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" }, @@ -131,7 +131,7 @@ }, "001-fork=Cancun-auto_access_list=False-beacon_root=4294967296-timestamp=4294967296": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" }, @@ -261,7 +261,7 @@ }, "002-fork=Cancun-auto_access_list=False-beacon_root=18446744073709551614-timestamp=18446744073709551614": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" }, @@ -391,7 +391,7 @@ }, "003-fork=Cancun-auto_access_list=False-beacon_root=18446744073709551615-timestamp=18446744073709551615": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" }, @@ -521,7 +521,7 @@ }, "004-fork=Cancun-auto_access_list=True-beacon_root=12-timestamp=12": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" }, @@ -659,7 +659,7 @@ }, "005-fork=Cancun-auto_access_list=True-beacon_root=4294967296-timestamp=4294967296": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" }, @@ -797,7 +797,7 @@ }, "006-fork=Cancun-auto_access_list=True-beacon_root=18446744073709551614-timestamp=18446744073709551614": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" }, @@ -935,7 +935,7 @@ }, "007-fork=Cancun-auto_access_list=True-beacon_root=18446744073709551615-timestamp=18446744073709551615": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" }, diff --git a/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/beacon_root_selfdestruct.json b/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/beacon_root_selfdestruct.json index 528e381720a..ca66ec74c4f 100644 --- a/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/beacon_root_selfdestruct.json +++ b/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/beacon_root_selfdestruct.json @@ -1,7 +1,7 @@ { "000-fork=Cancun-timestamp=12": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" }, diff --git a/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/calldata_lengths.json b/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/calldata_lengths.json index 6f03c204311..2266f06b8ff 100644 --- a/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/calldata_lengths.json +++ b/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/calldata_lengths.json @@ -1,7 +1,7 @@ { "000-fork=Cancun-timestamp=12-valid_call=False-valid_input=False-empty_calldata": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" }, @@ -126,7 +126,7 @@ }, "001-fork=Cancun-timestamp=12-valid_call=False-valid_input=False-one_byte": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" }, @@ -251,7 +251,7 @@ }, "002-fork=Cancun-timestamp=12-valid_call=False-valid_input=False-31_bytes": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" }, @@ -376,7 +376,7 @@ }, "003-fork=Cancun-timestamp=12-valid_call=False-valid_input=False-33_bytes": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" }, @@ -501,7 +501,7 @@ }, "004-fork=Cancun-timestamp=12-valid_call=False-valid_input=False-1024_bytes": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" }, diff --git a/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/invalid_beacon_root_calldata_value.json b/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/invalid_beacon_root_calldata_value.json index 25ac315fa06..e523b330cf1 100644 --- a/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/invalid_beacon_root_calldata_value.json +++ b/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/invalid_beacon_root_calldata_value.json @@ -1,7 +1,7 @@ { "000-fork=Cancun-timestamp=12-valid_call=False-valid_input=False-zero_calldata": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" }, diff --git a/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/tx_to_beacon_root_contract.json b/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/tx_to_beacon_root_contract.json index a96dd5ef260..91bc09e2a9f 100644 --- a/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/tx_to_beacon_root_contract.json +++ b/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/tx_to_beacon_root_contract.json @@ -1,7 +1,7 @@ { "000-fork=Cancun-tx_type=3-call_beacon_root_contract=True-auto_access_list=False": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" }, @@ -130,7 +130,7 @@ }, "001-fork=Cancun-tx_type=3-call_beacon_root_contract=True-auto_access_list=True": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" }, @@ -267,7 +267,7 @@ }, "002-fork=Cancun-tx_type=2-call_beacon_root_contract=True-auto_access_list=False": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" }, @@ -392,7 +392,7 @@ }, "003-fork=Cancun-tx_type=2-call_beacon_root_contract=True-auto_access_list=True": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" }, @@ -525,7 +525,7 @@ }, "004-fork=Cancun-tx_type=1-call_beacon_root_contract=True-auto_access_list=False": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" }, @@ -649,7 +649,7 @@ }, "005-fork=Cancun-tx_type=1-call_beacon_root_contract=True-auto_access_list=True": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" }, @@ -781,7 +781,7 @@ }, "006-fork=Cancun-tx_type=0-call_beacon_root_contract=True-auto_access_list=False": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" }, @@ -904,7 +904,7 @@ }, "007-fork=Cancun-tx_type=0-call_beacon_root_contract=True-auto_access_list=True": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" }, diff --git a/tests/execution-spec-tests/cancun/eip4788_beacon_root/blocks_beacon_root_contract/beacon_root_contract_deploy.json b/tests/execution-spec-tests/cancun/eip4788_beacon_root/blocks_beacon_root_contract/beacon_root_contract_deploy.json index 5dbb413f80e..8c652984ec5 100644 --- a/tests/execution-spec-tests/cancun/eip4788_beacon_root/blocks_beacon_root_contract/beacon_root_contract_deploy.json +++ b/tests/execution-spec-tests/cancun/eip4788_beacon_root/blocks_beacon_root_contract/beacon_root_contract_deploy.json @@ -1,7 +1,7 @@ { "000-fork=ShanghaiToCancunAtTime15k-deploy_on_shanghai": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" }, @@ -221,7 +221,7 @@ }, "001-fork=ShanghaiToCancunAtTime15k-deploy_on_cancun": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" }, diff --git a/tests/execution-spec-tests/cancun/eip4788_beacon_root/blocks_beacon_root_contract/beacon_root_transition.json b/tests/execution-spec-tests/cancun/eip4788_beacon_root/blocks_beacon_root_contract/beacon_root_transition.json index 60f2b97dc10..c78b55ec797 100644 --- a/tests/execution-spec-tests/cancun/eip4788_beacon_root/blocks_beacon_root_contract/beacon_root_transition.json +++ b/tests/execution-spec-tests/cancun/eip4788_beacon_root/blocks_beacon_root_contract/beacon_root_transition.json @@ -1,7 +1,7 @@ { "000-fork=ShanghaiToCancunAtTime15k-block_count=20-fork_transition": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" }, diff --git a/tests/execution-spec-tests/cancun/eip4788_beacon_root/blocks_beacon_root_contract/multi_block_beacon_root_timestamp_calls.json b/tests/execution-spec-tests/cancun/eip4788_beacon_root/blocks_beacon_root_contract/multi_block_beacon_root_timestamp_calls.json index ee6a52a9e90..a1c1b3a93fa 100644 --- a/tests/execution-spec-tests/cancun/eip4788_beacon_root/blocks_beacon_root_contract/multi_block_beacon_root_timestamp_calls.json +++ b/tests/execution-spec-tests/cancun/eip4788_beacon_root/blocks_beacon_root_contract/multi_block_beacon_root_timestamp_calls.json @@ -1,7 +1,7 @@ { "000-fork=Cancun-block_count=10-buffer_wraparound": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" }, @@ -932,7 +932,7 @@ }, "001-fork=Cancun-block_count=10-buffer_wraparound_overwrite": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" }, @@ -1755,7 +1755,7 @@ }, "002-fork=Cancun-block_count=10-buffer_wraparound_overwrite_high_timestamp": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" }, @@ -2578,7 +2578,7 @@ }, "003-fork=Cancun-block_count=10-buffer_wraparound_no_overwrite": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" }, @@ -3509,7 +3509,7 @@ }, "004-fork=Cancun-block_count=10-buffer_wraparound_no_overwrite_2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" }, diff --git a/tests/execution-spec-tests/cancun/eip4788_beacon_root/blocks_beacon_root_contract/no_beacon_root_contract_at_transition.json b/tests/execution-spec-tests/cancun/eip4788_beacon_root/blocks_beacon_root_contract/no_beacon_root_contract_at_transition.json index 6d6c1d07ae7..5f37e10ef55 100644 --- a/tests/execution-spec-tests/cancun/eip4788_beacon_root/blocks_beacon_root_contract/no_beacon_root_contract_at_transition.json +++ b/tests/execution-spec-tests/cancun/eip4788_beacon_root/blocks_beacon_root_contract/no_beacon_root_contract_at_transition.json @@ -1,7 +1,7 @@ { "000-fork=ShanghaiToCancunAtTime15k-timestamp=15000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" }, diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/blob_tx_attribute_calldata_opcodes.json b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/blob_tx_attribute_calldata_opcodes.json index f891b4d1264..65ac657924d 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/blob_tx_attribute_calldata_opcodes.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/blob_tx_attribute_calldata_opcodes.json @@ -1,7 +1,7 @@ { "000-fork=Cancun-tx_gas=500000-empty-opcode=CALLDATALOAD": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -130,7 +130,7 @@ }, "001-fork=Cancun-tx_gas=500000-empty-opcode=CALLDATASIZE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -259,7 +259,7 @@ }, "002-fork=Cancun-tx_gas=500000-empty-opcode=CALLDATACOPY": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -388,7 +388,7 @@ }, "003-fork=Cancun-tx_gas=500000-single_byte-opcode=CALLDATALOAD": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -519,7 +519,7 @@ }, "004-fork=Cancun-tx_gas=500000-single_byte-opcode=CALLDATASIZE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -650,7 +650,7 @@ }, "005-fork=Cancun-tx_gas=500000-single_byte-opcode=CALLDATACOPY": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -781,7 +781,7 @@ }, "006-fork=Cancun-tx_gas=500000-word-opcode=CALLDATALOAD": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -912,7 +912,7 @@ }, "007-fork=Cancun-tx_gas=500000-word-opcode=CALLDATASIZE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1043,7 +1043,7 @@ }, "008-fork=Cancun-tx_gas=500000-word-opcode=CALLDATACOPY": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/blob_tx_attribute_gasprice_opcode.json b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/blob_tx_attribute_gasprice_opcode.json index 3f9a04d86be..97d1e806574 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/blob_tx_attribute_gasprice_opcode.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/blob_tx_attribute_gasprice_opcode.json @@ -1,7 +1,7 @@ { "000-fork=Cancun-tx_gas=500000-opcode=GASPRICE-tx_max_fee_per_gas=100-tx_max_fee_per_blob_gas=1-tx_max_priority_fee_per_gas=0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -132,7 +132,7 @@ }, "001-fork=Cancun-tx_gas=500000-opcode=GASPRICE-tx_max_fee_per_gas=100-tx_max_fee_per_blob_gas=1-tx_max_priority_fee_per_gas=2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -269,7 +269,7 @@ }, "002-fork=Cancun-tx_gas=500000-opcode=GASPRICE-tx_max_fee_per_gas=100-tx_max_fee_per_blob_gas=3-tx_max_priority_fee_per_gas=0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -400,7 +400,7 @@ }, "003-fork=Cancun-tx_gas=500000-opcode=GASPRICE-tx_max_fee_per_gas=100-tx_max_fee_per_blob_gas=3-tx_max_priority_fee_per_gas=2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/blob_tx_attribute_opcodes.json b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/blob_tx_attribute_opcodes.json index 6de67ef065c..f58ccba85b2 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/blob_tx_attribute_opcodes.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/blob_tx_attribute_opcodes.json @@ -1,7 +1,7 @@ { "000-fork=Cancun-tx_gas=500000-opcode=ORIGIN": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -132,7 +132,7 @@ }, "001-fork=Cancun-tx_gas=500000-opcode=CALLER": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/blob_tx_attribute_value_opcode.json b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/blob_tx_attribute_value_opcode.json index b8acc7070ed..5570ec397a4 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/blob_tx_attribute_value_opcode.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/blob_tx_attribute_value_opcode.json @@ -1,7 +1,7 @@ { "000-fork=Cancun-tx_gas=500000-tx_value=0-opcode=CALLVALUE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -130,7 +130,7 @@ }, "001-fork=Cancun-tx_gas=500000-tx_value=1-opcode=CALLVALUE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -261,7 +261,7 @@ }, "002-fork=Cancun-tx_gas=500000-tx_value=1000000000000000000-opcode=CALLVALUE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/blob_type_tx_pre_fork.json b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/blob_type_tx_pre_fork.json index 51fd0763957..bba8a720985 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/blob_type_tx_pre_fork.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/blob_type_tx_pre_fork.json @@ -1,7 +1,7 @@ { "000-fork=ShanghaiToCancunAtTime15k-no_blob_tx": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -31,7 +31,50 @@ { "rlp": "0xf90287f90217a0e65f8efd00744af00dd2592d0550541cd1e883694df663eead84f129ff2138dfa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00b9d1a267a43c569ccd0ff306f8e9056d6c75389839d4402bb616de8d0af901ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f869b86703f864018080078252089400000000000000000000000000000000000001000180c001c080a0de3ecf0321e2d26c34d6b9bd1ffb5a30167abafd5ecacd477049544c23d402cda06c56b464881a4af7bb8216d47c6c5e3286395027af44044b3d7d31a2d24901f2c0c0", "expectException": "tx type 3 not allowed pre-Cancun", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xe65f8efd00744af00dd2592d0550541cd1e883694df663eead84f129ff2138df", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0b9d1a267a43c569ccd0ff306f8e9056d6c75389839d4402bb616de8d0af901e", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x04006395f6fe8d5960e2bdcd4a8bc2f9c0dc2003c3a795ff86ea9101180bd043" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [], + "v": "0x00", + "r": "0xde3ecf0321e2d26c34d6b9bd1ffb5a30167abafd5ecacd477049544c23d402cd", + "s": "0x6c56b464881a4af7bb8216d47c6c5e3286395027af44044b3d7d31a2d24901f2", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xe65f8efd00744af00dd2592d0550541cd1e883694df663eead84f129ff2138df", @@ -67,7 +110,7 @@ }, "001-fork=ShanghaiToCancunAtTime15k-one_blob_tx": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -97,7 +140,52 @@ { "rlp": "0xf902a8f90217a093ba1d150a1d1016c13e30e068f95a491288910b7688ac42aa2805f4fac05f20a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07fab0d9bb5daf1b7c053b0c3b218fedef9522118a58e8f067965f20c9626f139a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", "expectException": "tx type 3 not allowed pre-Cancun", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x93ba1d150a1d1016c13e30e068f95a491288910b7688ac42aa2805f4fac05f20", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x7fab0d9bb5daf1b7c053b0c3b218fedef9522118a58e8f067965f20c9626f139", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x4193725c2de2ac0fa6e4d966b1303e783d4e7236ba6d9a1c03c318caf5f732ab" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", + "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x93ba1d150a1d1016c13e30e068f95a491288910b7688ac42aa2805f4fac05f20", diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/insufficient_balance_blob_tx.json b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/insufficient_balance_blob_tx.json index 11d30f52152..34369d0daaf 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/insufficient_balance_blob_tx.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/insufficient_balance_blob_tx.json @@ -1,7 +1,7 @@ { "000-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=1-no_calldata-tx_value=0-tx_max_priority_fee_per_gas=0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -34,7 +34,55 @@ { "rlp": "0xf902d1f90240a0c545c4c25c2b01b821ceabe791fd14ca60f2523211bb9a01fc16af4fbeb63133a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c9242c8f50b41094b61604792d98551c9249b9be1ea8722bc30cc2222bfba0f4a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001008080c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0dca96ee8036da88f7870601739979abcb9e581823bb0539f1ee412e83c5a6654a06f763830fe86dfc591bbac5e70d47576bfaaf48d99ee399398b8e6b7de9f095ec0c0", "expectException": "insufficient_account_balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xc545c4c25c2b01b821ceabe791fd14ca60f2523211bb9a01fc16af4fbeb63133", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xc9242c8f50b41094b61604792d98551c9249b9be1ea8722bc30cc2222bfba0f4", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x5871d7b5eb50ab173fb6b9911f23a5d2864ceb359a9dd5e97b0805dfa8c95ccb" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xdca96ee8036da88f7870601739979abcb9e581823bb0539f1ee412e83c5a6654", + "s": "0x6f763830fe86dfc591bbac5e70d47576bfaaf48d99ee399398b8e6b7de9f095e", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xc545c4c25c2b01b821ceabe791fd14ca60f2523211bb9a01fc16af4fbeb63133", @@ -70,7 +118,7 @@ }, "001-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=1-no_calldata-tx_value=0-tx_max_priority_fee_per_gas=8": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -103,7 +151,55 @@ { "rlp": "0xf902d1f90240a0f5b1eb79711089d1fd2a7caf3026bb21153cbcfd32c157ba03ecfac7b60eaa08a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d80cac34e78f745963294186bd4164282f9b64099933026e26a61bb4d4467f14a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018008078252089400000000000000000000000000000000000001008080c001e1a0010000000000000000000000000000000000000000000000000000000000000080a00a74fc00fd19397a364a9fa0725fb7450e39a0835f9bb73641ade6d6eaa45c2ea070df4bc2b3e1b67218f23101b0ac28921648e37bfe7772f97fb3e2f1640a733dc0c0", "expectException": "insufficient_account_balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xf5b1eb79711089d1fd2a7caf3026bb21153cbcfd32c157ba03ecfac7b60eaa08", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xd80cac34e78f745963294186bd4164282f9b64099933026e26a61bb4d4467f14", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x9fd9f91f32aeee8ba8886d2bfff94ad49503042d56e217c39105f6659cff45d9" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x08", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0x0a74fc00fd19397a364a9fa0725fb7450e39a0835f9bb73641ade6d6eaa45c2e", + "s": "0x70df4bc2b3e1b67218f23101b0ac28921648e37bfe7772f97fb3e2f1640a733d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xf5b1eb79711089d1fd2a7caf3026bb21153cbcfd32c157ba03ecfac7b60eaa08", @@ -139,7 +235,7 @@ }, "002-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=1-no_calldata-tx_value=1-tx_max_priority_fee_per_gas=0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -172,7 +268,55 @@ { "rlp": "0xf902d1f90240a0cb295c514c7f05bf55bd502f1aae8de4faa0c5721e853644a9b80125be4f1d91a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f79c1f1858e40fb857f4baaf29fb17954e0b423e80d6170cdbe7b8180a6e3809a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", "expectException": "insufficient_account_balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xcb295c514c7f05bf55bd502f1aae8de4faa0c5721e853644a9b80125be4f1d91", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf79c1f1858e40fb857f4baaf29fb17954e0b423e80d6170cdbe7b8180a6e3809", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x63fec1369cd9d65b290ae94fc996e8ebf2c79051c6bf35141dd04fae3e4ed933" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", + "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xcb295c514c7f05bf55bd502f1aae8de4faa0c5721e853644a9b80125be4f1d91", @@ -208,7 +352,7 @@ }, "003-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=1-no_calldata-tx_value=1-tx_max_priority_fee_per_gas=8": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -241,7 +385,55 @@ { "rlp": "0xf902d1f90240a0edbe52c59e7e4f635dc9b48be579105755a022e8d93f1bfec5025ee766f8ae65a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04ffeb8ef2784bd8ea71948d0ec13da29f84cf6fadbd4a6f5ce0238cdeaf8e5d3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018008078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0834260345355eb2e9de227bf22bd4c82e7ad4c6eb547d3c38a24b23a2f5f8b99a02ec4f27833cb32af4f4b394730a7c2e4a55df4cdb86757bf49bf11809bd2d013c0c0", "expectException": "insufficient_account_balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xedbe52c59e7e4f635dc9b48be579105755a022e8d93f1bfec5025ee766f8ae65", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x4ffeb8ef2784bd8ea71948d0ec13da29f84cf6fadbd4a6f5ce0238cdeaf8e5d3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x4a749a10981b78fedf237acfb699f534666d1555d62b2ba0bdab803bf6000112" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x08", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0x834260345355eb2e9de227bf22bd4c82e7ad4c6eb547d3c38a24b23a2f5f8b99", + "s": "0x2ec4f27833cb32af4f4b394730a7c2e4a55df4cdb86757bf49bf11809bd2d013", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xedbe52c59e7e4f635dc9b48be579105755a022e8d93f1bfec5025ee766f8ae65", @@ -277,7 +469,7 @@ }, "004-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=1-single_zero_calldata-tx_value=0-tx_max_priority_fee_per_gas=0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -310,7 +502,55 @@ { "rlp": "0xf902d1f90240a054b1f20f3829f52de769bd3df3451192ce0f3f860c00cac096271c8483a081c7a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07008b41fbcbee97991b922a5556a408db17b288036ac5803aa29eb7b9cd241a4a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001008000c001e1a0010000000000000000000000000000000000000000000000000000000000000080a08ef1265a5c4f2fbb28b31b752023aa14081df4a16fe022560d0f4ded00fcee25a07b9da64739d8916a86844d8d8a63ffea9cb158721262bc1c3d4fec63cb92aa3ec0c0", "expectException": "insufficient_account_balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x54b1f20f3829f52de769bd3df3451192ce0f3f860c00cac096271c8483a081c7", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x7008b41fbcbee97991b922a5556a408db17b288036ac5803aa29eb7b9cd241a4", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x6d0de65fb585320dd2ab768da5c0b17ce53697e15ad4b4c72514da697cf43a11" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x00", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0x8ef1265a5c4f2fbb28b31b752023aa14081df4a16fe022560d0f4ded00fcee25", + "s": "0x7b9da64739d8916a86844d8d8a63ffea9cb158721262bc1c3d4fec63cb92aa3e", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x54b1f20f3829f52de769bd3df3451192ce0f3f860c00cac096271c8483a081c7", @@ -346,7 +586,7 @@ }, "005-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=1-single_zero_calldata-tx_value=0-tx_max_priority_fee_per_gas=8": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -379,7 +619,55 @@ { "rlp": "0xf902d1f90240a04a8bad1baeaceaf1337648877ab978da11faecf2d2b59d517a26646eebf417d4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0777d6033b30371032625cc3787873ca0e65efc78a7ce075c281db429d56ba27ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018008078252089400000000000000000000000000000000000001008000c001e1a0010000000000000000000000000000000000000000000000000000000000000080a094528c7b2c3624da6e73d31433bec9ae2cb5ad6c5a295a0a6d1acb1a91fd5151a0403579728d3fb6070730f45431672abdaa69acf6c69c8248b9913e8f802666e5c0c0", "expectException": "insufficient_account_balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x4a8bad1baeaceaf1337648877ab978da11faecf2d2b59d517a26646eebf417d4", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x777d6033b30371032625cc3787873ca0e65efc78a7ce075c281db429d56ba27e", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xbcaf62ad7adcac2d3e739312761ba0c469b2e2c2259e8eef30208e413640a6fd" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x08", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x00", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0x94528c7b2c3624da6e73d31433bec9ae2cb5ad6c5a295a0a6d1acb1a91fd5151", + "s": "0x403579728d3fb6070730f45431672abdaa69acf6c69c8248b9913e8f802666e5", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x4a8bad1baeaceaf1337648877ab978da11faecf2d2b59d517a26646eebf417d4", @@ -415,7 +703,7 @@ }, "006-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=1-single_zero_calldata-tx_value=1-tx_max_priority_fee_per_gas=0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -448,7 +736,55 @@ { "rlp": "0xf902d1f90240a00c5f9f759047d583e64e9196639334b39fba4bedb572b96dca921cd24e6e6945a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b71bc722a367125fd65879c1934564af8091c7bf0eba57939353de343a6cd1e8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000100c001e1a0010000000000000000000000000000000000000000000000000000000000000080a014ca5ead067aa9c1930c4ef5bfee0f85796dc060ee0616b7de4cad9bed340cfea04133ace6ec58338107311ae2604144f7268e75296d112c7d40a42911a53084d7c0c0", "expectException": "insufficient_account_balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x0c5f9f759047d583e64e9196639334b39fba4bedb572b96dca921cd24e6e6945", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xb71bc722a367125fd65879c1934564af8091c7bf0eba57939353de343a6cd1e8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x2263a62b1eb531557e29502ea5acad6387adb55775cc8ded795fbf56f5dfbdf1" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x00", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0x14ca5ead067aa9c1930c4ef5bfee0f85796dc060ee0616b7de4cad9bed340cfe", + "s": "0x4133ace6ec58338107311ae2604144f7268e75296d112c7d40a42911a53084d7", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x0c5f9f759047d583e64e9196639334b39fba4bedb572b96dca921cd24e6e6945", @@ -484,7 +820,7 @@ }, "007-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=1-single_zero_calldata-tx_value=1-tx_max_priority_fee_per_gas=8": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -517,7 +853,55 @@ { "rlp": "0xf902d1f90240a05f0d5771213c80ef62e99578de7055f25b0663da0426a0080013d02456318deda01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa065f50dd72fefb128ce43de9a0ba580003e8a188f755103b31bdd1b033eddb5f6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018008078252089400000000000000000000000000000000000001000100c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05e2941d27b09a30735306f96fcb5169fc63f18606e680e3f21fc4fa85a33fda2a07c26869911646e5f5d9843d9949aa18f3ee8cb336aaa5b58785f23882a764286c0c0", "expectException": "insufficient_account_balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x5f0d5771213c80ef62e99578de7055f25b0663da0426a0080013d02456318ded", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x65f50dd72fefb128ce43de9a0ba580003e8a188f755103b31bdd1b033eddb5f6", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x1c78b20fdbd1dc8ec0a2c1b0be30f65af689fb91aa618d5a83973441e1ccb9a6" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x08", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x00", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0x5e2941d27b09a30735306f96fcb5169fc63f18606e680e3f21fc4fa85a33fda2", + "s": "0x7c26869911646e5f5d9843d9949aa18f3ee8cb336aaa5b58785f23882a764286", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x5f0d5771213c80ef62e99578de7055f25b0663da0426a0080013d02456318ded", @@ -553,7 +937,7 @@ }, "008-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=1-single_one_calldata-tx_value=0-tx_max_priority_fee_per_gas=0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -586,7 +970,55 @@ { "rlp": "0xf902d1f90240a0b6c57c6b583cf8ab6db7deb3e7f8b4508c2a036805c0077f086cbc6b0800c263a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa082e4d312fdb96c04bf45cc228cc1be1dbf8cd18623e1bd99465217aab18ef61fa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001008001c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0ebaee9cd1beccea1a27ffbf0d94a96d99bc24560d1e3e56fafd2b48ccb17e24ea0247f72d63e5c7963fd197af7fdb6b0c6177f887a0435848a8d856f34bf5ccd36c0c0", "expectException": "insufficient_account_balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xb6c57c6b583cf8ab6db7deb3e7f8b4508c2a036805c0077f086cbc6b0800c263", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x82e4d312fdb96c04bf45cc228cc1be1dbf8cd18623e1bd99465217aab18ef61f", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x99b0d75c28d1bc15bf4bb38d4de13175c0f3660c6debd80654a589a26f64e2c3" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x01", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xebaee9cd1beccea1a27ffbf0d94a96d99bc24560d1e3e56fafd2b48ccb17e24e", + "s": "0x247f72d63e5c7963fd197af7fdb6b0c6177f887a0435848a8d856f34bf5ccd36", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xb6c57c6b583cf8ab6db7deb3e7f8b4508c2a036805c0077f086cbc6b0800c263", @@ -622,7 +1054,7 @@ }, "009-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=1-single_one_calldata-tx_value=0-tx_max_priority_fee_per_gas=8": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -655,7 +1087,55 @@ { "rlp": "0xf902d1f90240a03417c50a628c917a943b933f63199aad7a07681da13fb1748dbeb156b580ade4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04b551441257eb452452568b14f1ff236e2dccbbe956161e6c19d3f36c732d5d4a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018008078252089400000000000000000000000000000000000001008001c001e1a0010000000000000000000000000000000000000000000000000000000000000080a08dc2f0121b6a7155b370689c285e5ffbc442bb38fb40dd4bb5a4a81329c463e4a056036526a16a740b3a9e81df5f7eb138d6cc9d5e8d02e6f0d5509f484a4488c2c0c0", "expectException": "insufficient_account_balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x3417c50a628c917a943b933f63199aad7a07681da13fb1748dbeb156b580ade4", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x4b551441257eb452452568b14f1ff236e2dccbbe956161e6c19d3f36c732d5d4", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xb5fdb93379722e1e35af5e05844f6d69e3e01b54980ae4304aebd26896f59f1b" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x08", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x01", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0x8dc2f0121b6a7155b370689c285e5ffbc442bb38fb40dd4bb5a4a81329c463e4", + "s": "0x56036526a16a740b3a9e81df5f7eb138d6cc9d5e8d02e6f0d5509f484a4488c2", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x3417c50a628c917a943b933f63199aad7a07681da13fb1748dbeb156b580ade4", @@ -691,7 +1171,7 @@ }, "010-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=1-single_one_calldata-tx_value=1-tx_max_priority_fee_per_gas=0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -724,7 +1204,55 @@ { "rlp": "0xf902d1f90240a0c2f1988194986e72330d065a112f2a91efd5805231895b1fdb5ece92acb247f6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07f9af1458b6dd07b4932dd4e6dd3592149f6b18ab9744f6d1bbab006f26b30f2a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000101c001e1a0010000000000000000000000000000000000000000000000000000000000000001a021f18230a2e30eb5e59ddd5cd98fad033b9123872f2695b1562384f3339f5f41a07fdaf17f2443155ed312af5f01ac9b87d3f32732d192bbce1e41bb94f41db7cac0c0", "expectException": "insufficient_account_balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xc2f1988194986e72330d065a112f2a91efd5805231895b1fdb5ece92acb247f6", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x7f9af1458b6dd07b4932dd4e6dd3592149f6b18ab9744f6d1bbab006f26b30f2", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x74b8e5e8038fdaa43f44636e54d87236fd5deed09a898a07800d0c9680c44d37" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x01", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0x21f18230a2e30eb5e59ddd5cd98fad033b9123872f2695b1562384f3339f5f41", + "s": "0x7fdaf17f2443155ed312af5f01ac9b87d3f32732d192bbce1e41bb94f41db7ca", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xc2f1988194986e72330d065a112f2a91efd5805231895b1fdb5ece92acb247f6", @@ -760,7 +1288,7 @@ }, "011-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=1-single_one_calldata-tx_value=1-tx_max_priority_fee_per_gas=8": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -793,7 +1321,55 @@ { "rlp": "0xf902d1f90240a0001aaee0d20e4a7aa5b46cd189533c58d385a2ceb9d2fefcf79263d54eb0cdada01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bc1d72e9f780af7a7e400986c0d9af590e7687e57052dca87b6ced06cbff70d3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018008078252089400000000000000000000000000000000000001000101c001e1a0010000000000000000000000000000000000000000000000000000000000000080a03b9f4419ef58de1362593eeaa75e496e69aa0217fa0ce996b792b49bcdfac406a03370a0e492f8283d4abc77b009b39206dae8bbf311156c8619a40092024925bfc0c0", "expectException": "insufficient_account_balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x001aaee0d20e4a7aa5b46cd189533c58d385a2ceb9d2fefcf79263d54eb0cdad", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xbc1d72e9f780af7a7e400986c0d9af590e7687e57052dca87b6ced06cbff70d3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x53f9a89cddbe73f2f564875ccc9d4c4f0f111d253834d66283e44925b68d3149" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x08", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x01", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0x3b9f4419ef58de1362593eeaa75e496e69aa0217fa0ce996b792b49bcdfac406", + "s": "0x3370a0e492f8283d4abc77b009b39206dae8bbf311156c8619a40092024925bf", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x001aaee0d20e4a7aa5b46cd189533c58d385a2ceb9d2fefcf79263d54eb0cdad", @@ -829,7 +1405,7 @@ }, "012-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=100-no_calldata-tx_value=0-tx_max_priority_fee_per_gas=0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -862,7 +1438,55 @@ { "rlp": "0xf902d1f90240a0c24c3a60298d5f627cce817f49019f899281afe46ee4251c9c0ebcd65e368ae4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa052ccf73efe5611b172565419ae2dc840d7dd3e4b815b98ee88152156de4d5a73a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001008080c064e1a0010000000000000000000000000000000000000000000000000000000000000080a0eb774461949962772ab55a732e712f293d26cc96498a878827d3e91e01bf2eada073a202c92b1c8fdfac1f03da02a3d19967264fb6717ca155c15938c519740dfdc0c0", "expectException": "insufficient_account_balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xc24c3a60298d5f627cce817f49019f899281afe46ee4251c9c0ebcd65e368ae4", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x52ccf73efe5611b172565419ae2dc840d7dd3e4b815b98ee88152156de4d5a73", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x1ec48fcf4a023a2bb4b3683c273720b664a98ca3667c348966275542a3700164" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x64", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xeb774461949962772ab55a732e712f293d26cc96498a878827d3e91e01bf2ead", + "s": "0x73a202c92b1c8fdfac1f03da02a3d19967264fb6717ca155c15938c519740dfd", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xc24c3a60298d5f627cce817f49019f899281afe46ee4251c9c0ebcd65e368ae4", @@ -898,7 +1522,7 @@ }, "013-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=100-no_calldata-tx_value=0-tx_max_priority_fee_per_gas=8": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -931,7 +1555,55 @@ { "rlp": "0xf902d1f90240a056ee99bc09138733820ecc4c06c5388f2b3134d632a30c719e64a0d41358bf1ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0fc7a205bddc32e8f67536b9078e909ad304f82f334e61db84deef20a88e85533a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018008078252089400000000000000000000000000000000000001008080c064e1a0010000000000000000000000000000000000000000000000000000000000000001a08a02f8695c36e60f9e318b71e00fa80185a5770067293a6eac09a070c1ea778fa06c87de734a2748de7fbcfed883b0c923e2494d8aeae9308b1c8ff2eb3b7acc3bc0c0", "expectException": "insufficient_account_balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x56ee99bc09138733820ecc4c06c5388f2b3134d632a30c719e64a0d41358bf1c", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xfc7a205bddc32e8f67536b9078e909ad304f82f334e61db84deef20a88e85533", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x9cc2846905dbf99de8eddefb7b378a2565d164f7b3afc826eaac965b05bb6bbc" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x08", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x64", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0x8a02f8695c36e60f9e318b71e00fa80185a5770067293a6eac09a070c1ea778f", + "s": "0x6c87de734a2748de7fbcfed883b0c923e2494d8aeae9308b1c8ff2eb3b7acc3b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x56ee99bc09138733820ecc4c06c5388f2b3134d632a30c719e64a0d41358bf1c", @@ -967,7 +1639,7 @@ }, "014-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=100-no_calldata-tx_value=1-tx_max_priority_fee_per_gas=0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1000,7 +1672,55 @@ { "rlp": "0xf902d1f90240a0349612a75430b8e5ced2f6e1bfe9707b3c56f7ff2da8b88750faf00133dedad5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e18feb025d507b6ec7cc0ffcda7bfe6fda537704d81a8671304c1204ecbd25a7a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c064e1a0010000000000000000000000000000000000000000000000000000000000000001a001f30ee2f0f8963619a153eea6b016e4cc8ec20124a3da4c4a65bb6b07c67400a03e001a6d2dfe1245c55ff1f53bae8bfce2a7dd4ab76a42ccef9186cccce7e6e0c0c0", "expectException": "insufficient_account_balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x349612a75430b8e5ced2f6e1bfe9707b3c56f7ff2da8b88750faf00133dedad5", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xe18feb025d507b6ec7cc0ffcda7bfe6fda537704d81a8671304c1204ecbd25a7", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x7a549955d3fbbf706405b8dd4126e796fdaf600223fb3344ec298284dc0bd25f" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x64", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0x01f30ee2f0f8963619a153eea6b016e4cc8ec20124a3da4c4a65bb6b07c67400", + "s": "0x3e001a6d2dfe1245c55ff1f53bae8bfce2a7dd4ab76a42ccef9186cccce7e6e0", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x349612a75430b8e5ced2f6e1bfe9707b3c56f7ff2da8b88750faf00133dedad5", @@ -1036,7 +1756,7 @@ }, "015-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=100-no_calldata-tx_value=1-tx_max_priority_fee_per_gas=8": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1069,7 +1789,55 @@ { "rlp": "0xf902d1f90240a0be453ac18ae5b4ac17f498137f49ef0bac99ac7e01dfe066bd52b3bd88fe947fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa081370790b3682e0055a5eb8618b816d54c7593ad7a8aa31f7524a3cab8a71991a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018008078252089400000000000000000000000000000000000001000180c064e1a0010000000000000000000000000000000000000000000000000000000000000080a0583b0b00afa057d8fd329bda7bee40e62ff1f10d665daf6752fb091ec2b4a06ea03e2e2426049295029ab5aefefca9f9ffd9cbebb2001aab5ee2b0eef573f67b0cc0c0", "expectException": "insufficient_account_balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xbe453ac18ae5b4ac17f498137f49ef0bac99ac7e01dfe066bd52b3bd88fe947f", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x81370790b3682e0055a5eb8618b816d54c7593ad7a8aa31f7524a3cab8a71991", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xab2cd8bef304457ba12de032ed9ffc7965e59602b4180c6abaff4462aea822e1" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x08", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x64", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0x583b0b00afa057d8fd329bda7bee40e62ff1f10d665daf6752fb091ec2b4a06e", + "s": "0x3e2e2426049295029ab5aefefca9f9ffd9cbebb2001aab5ee2b0eef573f67b0c", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xbe453ac18ae5b4ac17f498137f49ef0bac99ac7e01dfe066bd52b3bd88fe947f", @@ -1105,7 +1873,7 @@ }, "016-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=100-single_zero_calldata-tx_value=0-tx_max_priority_fee_per_gas=0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1138,7 +1906,55 @@ { "rlp": "0xf902d1f90240a0adadc1ddbe7b826eb276d2ebb537b1a72e939ca497b763680d0b9ff0f4e72484a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f00628369585ecbdc4b1bff5758c773f3c1278bfb0d6fafa5d4c9a25e9c5897ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001008000c064e1a0010000000000000000000000000000000000000000000000000000000000000080a0bb13558decc959cb279c9b350642a5d1ce804bb0c994127e48e410965535f50ea03f850921cfdfc269e6032af204ad29f0b5dbe2e2c275c33a751040b38038a4d7c0c0", "expectException": "insufficient_account_balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xadadc1ddbe7b826eb276d2ebb537b1a72e939ca497b763680d0b9ff0f4e72484", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf00628369585ecbdc4b1bff5758c773f3c1278bfb0d6fafa5d4c9a25e9c5897c", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x36945fbc48a59f5bc7bb7efa44e2e240a06cdab48f549441b8dbc17c5bac9666" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x00", + "accessList": [], + "maxFeePerBlobGas": "0x64", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xbb13558decc959cb279c9b350642a5d1ce804bb0c994127e48e410965535f50e", + "s": "0x3f850921cfdfc269e6032af204ad29f0b5dbe2e2c275c33a751040b38038a4d7", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xadadc1ddbe7b826eb276d2ebb537b1a72e939ca497b763680d0b9ff0f4e72484", @@ -1174,7 +1990,7 @@ }, "017-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=100-single_zero_calldata-tx_value=0-tx_max_priority_fee_per_gas=8": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1207,7 +2023,55 @@ { "rlp": "0xf902d1f90240a0f6b48fd8c65ef97864c7a780fff64ea9d5b907d21144b043b6e091457caa04d1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b7c491d3d922a53f6b0f6b9d2c8bc887deeaa9f29f0b9d8b2e8d50b7bddb78cca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018008078252089400000000000000000000000000000000000001008000c064e1a0010000000000000000000000000000000000000000000000000000000000000080a00f3600195d8f70f7298646578bff59e8626db0129dccb817532e9d9162de8da6a0492d12f88878ba7b46787bd442d34cea28998e99e4f212c559220033f05b85b8c0c0", "expectException": "insufficient_account_balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xf6b48fd8c65ef97864c7a780fff64ea9d5b907d21144b043b6e091457caa04d1", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xb7c491d3d922a53f6b0f6b9d2c8bc887deeaa9f29f0b9d8b2e8d50b7bddb78cc", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x5bad821e695bdcd97253b5a2486d532e6ca1767a140ed198c62fe387dcbd282d" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x08", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x00", + "accessList": [], + "maxFeePerBlobGas": "0x64", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0x0f3600195d8f70f7298646578bff59e8626db0129dccb817532e9d9162de8da6", + "s": "0x492d12f88878ba7b46787bd442d34cea28998e99e4f212c559220033f05b85b8", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xf6b48fd8c65ef97864c7a780fff64ea9d5b907d21144b043b6e091457caa04d1", @@ -1243,7 +2107,7 @@ }, "018-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=100-single_zero_calldata-tx_value=1-tx_max_priority_fee_per_gas=0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1276,7 +2140,55 @@ { "rlp": "0xf902d1f90240a0e9d27d808e0cb736712793a57e9c9d18bd121aafb6614aa19308ac5ddc568590a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a3985bd9500781c733d796064462b78f3aa3f19177aa377018e4fba415efade9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000100c064e1a0010000000000000000000000000000000000000000000000000000000000000080a02e9117b3aecd14f8e01af7157a156c93b401214ffdcf2ca75f37bab88ca690cba079ae9be19208ba16ab9a5189d9b56fa1cd62ee3663dd090da2f34d1ecbaefafac0c0", "expectException": "insufficient_account_balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xe9d27d808e0cb736712793a57e9c9d18bd121aafb6614aa19308ac5ddc568590", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xa3985bd9500781c733d796064462b78f3aa3f19177aa377018e4fba415efade9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x268a4b2527b969e414b1c67dba41532671eb666b9e44c91918f8c8d6b293f753" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x00", + "accessList": [], + "maxFeePerBlobGas": "0x64", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0x2e9117b3aecd14f8e01af7157a156c93b401214ffdcf2ca75f37bab88ca690cb", + "s": "0x79ae9be19208ba16ab9a5189d9b56fa1cd62ee3663dd090da2f34d1ecbaefafa", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xe9d27d808e0cb736712793a57e9c9d18bd121aafb6614aa19308ac5ddc568590", @@ -1312,7 +2224,7 @@ }, "019-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=100-single_zero_calldata-tx_value=1-tx_max_priority_fee_per_gas=8": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1345,7 +2257,55 @@ { "rlp": "0xf902d1f90240a0a53658f8fc0db571e7ed4df713294d21c12958c43810ced038fc18c48536022ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06e5571bb0ffacccd76462434ac17ac8b3954418880e7819852b029d628b06139a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018008078252089400000000000000000000000000000000000001000100c064e1a0010000000000000000000000000000000000000000000000000000000000000001a0a1045f503e2d06c05c3c5c8b3740560075beaf2d7395688f993ea83e989e7d22a070371c7f3840f63aac646790236b90a046f7e31752f627498867065ae840e00ac0c0", "expectException": "insufficient_account_balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xa53658f8fc0db571e7ed4df713294d21c12958c43810ced038fc18c48536022c", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x6e5571bb0ffacccd76462434ac17ac8b3954418880e7819852b029d628b06139", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x62a0a02dd9f08d3cacf024cba23be051c8114ff45e59d8533acc369c7cbb3f93" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x08", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x00", + "accessList": [], + "maxFeePerBlobGas": "0x64", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xa1045f503e2d06c05c3c5c8b3740560075beaf2d7395688f993ea83e989e7d22", + "s": "0x70371c7f3840f63aac646790236b90a046f7e31752f627498867065ae840e00a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xa53658f8fc0db571e7ed4df713294d21c12958c43810ced038fc18c48536022c", @@ -1381,7 +2341,7 @@ }, "020-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=100-single_one_calldata-tx_value=0-tx_max_priority_fee_per_gas=0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1414,7 +2374,55 @@ { "rlp": "0xf902d1f90240a07a0d7689a7e24263ee83b12317ce9c2034065be97af42c9a65dcaf083a994f2ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06e93764772a583d55d6403ca28da866ea6007f8a37080028a3f6d44859d80923a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001008001c064e1a0010000000000000000000000000000000000000000000000000000000000000080a01fe0a9b1e0731a69933e28767d877591c539a1335e379a8b91c716b53a11f0e1a06abc50ae5723f2c88d072c1e81e33b7b82636041c9fb64a8476b3f1bc59aaaf2c0c0", "expectException": "insufficient_account_balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x7a0d7689a7e24263ee83b12317ce9c2034065be97af42c9a65dcaf083a994f2e", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x6e93764772a583d55d6403ca28da866ea6007f8a37080028a3f6d44859d80923", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x3cba9a25901dbce51063886de82007dc6decfe3cb7a3548220303006d4f9bfa3" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x01", + "accessList": [], + "maxFeePerBlobGas": "0x64", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0x1fe0a9b1e0731a69933e28767d877591c539a1335e379a8b91c716b53a11f0e1", + "s": "0x6abc50ae5723f2c88d072c1e81e33b7b82636041c9fb64a8476b3f1bc59aaaf2", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x7a0d7689a7e24263ee83b12317ce9c2034065be97af42c9a65dcaf083a994f2e", @@ -1450,7 +2458,7 @@ }, "021-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=100-single_one_calldata-tx_value=0-tx_max_priority_fee_per_gas=8": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1483,7 +2491,55 @@ { "rlp": "0xf902d1f90240a002facd1cac7740ed336dd9c016f9d12b8e9bf1e8a1a703e96f2ffb68e5d41171a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa015c92349bd0c81ae2f5e019133fb1a1564fab289f2b55b623c31913b7e923c30a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018008078252089400000000000000000000000000000000000001008001c064e1a0010000000000000000000000000000000000000000000000000000000000000080a0574edd8b1546ec7800cb69601a0f7406ed66585ef1ee885cce855279bed90fe3a05e7cd0cbcf4ada61de5c92e88fa7380c20e033e1ad6fb5099092e25e84f6bb7bc0c0", "expectException": "insufficient_account_balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x02facd1cac7740ed336dd9c016f9d12b8e9bf1e8a1a703e96f2ffb68e5d41171", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x15c92349bd0c81ae2f5e019133fb1a1564fab289f2b55b623c31913b7e923c30", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xdf6bbba3b8fb0b11600b00cf42af2ca9171e7edbcade8e580537852f870f9d64" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x08", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x01", + "accessList": [], + "maxFeePerBlobGas": "0x64", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0x574edd8b1546ec7800cb69601a0f7406ed66585ef1ee885cce855279bed90fe3", + "s": "0x5e7cd0cbcf4ada61de5c92e88fa7380c20e033e1ad6fb5099092e25e84f6bb7b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x02facd1cac7740ed336dd9c016f9d12b8e9bf1e8a1a703e96f2ffb68e5d41171", @@ -1519,7 +2575,7 @@ }, "022-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=100-single_one_calldata-tx_value=1-tx_max_priority_fee_per_gas=0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1552,7 +2608,55 @@ { "rlp": "0xf902d1f90240a01d55d31b60404233a5001b5b5302cd40133a8d179c62f4fb9350c655ae7e145da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09134286dee33951d7fceedd1a22b470dfa9633734fec342ba3491c2fc876f67aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000101c064e1a0010000000000000000000000000000000000000000000000000000000000000001a0c1ff90ffe75b876c16eb4e6cd57ab25ac52975bc385cae85325881a53766336ea0466cc2781938104210a37d9242d67b0d78f3205201374b243c669d41160f2538c0c0", "expectException": "insufficient_account_balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x1d55d31b60404233a5001b5b5302cd40133a8d179c62f4fb9350c655ae7e145d", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x9134286dee33951d7fceedd1a22b470dfa9633734fec342ba3491c2fc876f67a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x1eb5d56ef9197a41dbbf4f98c8f9aff0bf8840712f8cf954386952265b7e45a8" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x01", + "accessList": [], + "maxFeePerBlobGas": "0x64", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xc1ff90ffe75b876c16eb4e6cd57ab25ac52975bc385cae85325881a53766336e", + "s": "0x466cc2781938104210a37d9242d67b0d78f3205201374b243c669d41160f2538", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x1d55d31b60404233a5001b5b5302cd40133a8d179c62f4fb9350c655ae7e145d", @@ -1588,7 +2692,7 @@ }, "023-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=100-single_one_calldata-tx_value=1-tx_max_priority_fee_per_gas=8": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1621,7 +2725,55 @@ { "rlp": "0xf902d1f90240a07af361957ddcfdf86f96d28f856a357b696fddc0d8ce9ef84ed6a89386f7ea02a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06b6ceaf55501ba0b4ee4a3c1abcf5cb2aa6b55521ad188aa40e3fb26c50b838aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018008078252089400000000000000000000000000000000000001000101c064e1a0010000000000000000000000000000000000000000000000000000000000000080a0784aa728410e3cee700370d3c14cc537aa20ff0eecfc4e09d67b64bba397f846a02cf690a2b395d9ebe59f46ff762c530dcffb9dcfc04147de559ef8d07d413598c0c0", "expectException": "insufficient_account_balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x7af361957ddcfdf86f96d28f856a357b696fddc0d8ce9ef84ed6a89386f7ea02", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x6b6ceaf55501ba0b4ee4a3c1abcf5cb2aa6b55521ad188aa40e3fb26c50b838a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xf1e68d96e177cafd738880a628b54592a7a000ea40f2b77b68f8e9d072298fa5" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x08", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x01", + "accessList": [], + "maxFeePerBlobGas": "0x64", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0x784aa728410e3cee700370d3c14cc537aa20ff0eecfc4e09d67b64bba397f846", + "s": "0x2cf690a2b395d9ebe59f46ff762c530dcffb9dcfc04147de559ef8d07d413598", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x7af361957ddcfdf86f96d28f856a357b696fddc0d8ce9ef84ed6a89386f7ea02", @@ -1657,7 +2809,7 @@ }, "024-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=10000-no_calldata-tx_value=0-tx_max_priority_fee_per_gas=0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1690,7 +2842,55 @@ { "rlp": "0xf902d3f90240a097c55a516a5dcdc04041c30641b2a0b96a62133ae43b7a29c6698d03305d460da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bf7914d8938d7d51ddc2a74d5ac47eb9065524225c5f8d14f29fd234083f5c1ba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88cb88a03f887018080078252089400000000000000000000000000000000000001008080c0822710e1a0010000000000000000000000000000000000000000000000000000000000000001a092c7b7ebc1af73ef5871030920e2b1b28b78ccdefac30a7851cbc34f77f9241ba0378b2976452d62627a6b1301c0df985b0c9d21c4172f4e2086938e55637800f2c0c0", "expectException": "insufficient_account_balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x97c55a516a5dcdc04041c30641b2a0b96a62133ae43b7a29c6698d03305d460d", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xbf7914d8938d7d51ddc2a74d5ac47eb9065524225c5f8d14f29fd234083f5c1b", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x83733d877b5873538f3056a7220f1dcf938e81cc62a6c43bc3183d742ee7b247" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x2710", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0x92c7b7ebc1af73ef5871030920e2b1b28b78ccdefac30a7851cbc34f77f9241b", + "s": "0x378b2976452d62627a6b1301c0df985b0c9d21c4172f4e2086938e55637800f2", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x97c55a516a5dcdc04041c30641b2a0b96a62133ae43b7a29c6698d03305d460d", @@ -1726,7 +2926,7 @@ }, "025-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=10000-no_calldata-tx_value=0-tx_max_priority_fee_per_gas=8": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1759,7 +2959,55 @@ { "rlp": "0xf902d3f90240a0da6987865c0cb9c1950f06d15dbdefb4885250a09b917ee9e267ec3b8aabfe85a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03bf4de86f206b19a325e37cecae852b2d296ea37fa158c2b855daff101408bb5a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88cb88a03f887018008078252089400000000000000000000000000000000000001008080c0822710e1a0010000000000000000000000000000000000000000000000000000000000000001a05727e66c5d48c8b60b1d4874aef9d969c8a9ee2b8bc1876fbdd67f71a22e545fa03c77ec8be71a6b52f818fc1aff0abeb779d62727f76d8d4d34bf29ecb9e40006c0c0", "expectException": "insufficient_account_balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xda6987865c0cb9c1950f06d15dbdefb4885250a09b917ee9e267ec3b8aabfe85", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x3bf4de86f206b19a325e37cecae852b2d296ea37fa158c2b855daff101408bb5", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xfbd3dcd93809e0275f20b389d029eb97ba5e0c0ee3e66065f6eba50e95c41389" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x08", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x2710", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0x5727e66c5d48c8b60b1d4874aef9d969c8a9ee2b8bc1876fbdd67f71a22e545f", + "s": "0x3c77ec8be71a6b52f818fc1aff0abeb779d62727f76d8d4d34bf29ecb9e40006", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xda6987865c0cb9c1950f06d15dbdefb4885250a09b917ee9e267ec3b8aabfe85", @@ -1795,7 +3043,7 @@ }, "026-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=10000-no_calldata-tx_value=1-tx_max_priority_fee_per_gas=0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1828,7 +3076,55 @@ { "rlp": "0xf902d3f90240a03bc335959a17395f2c2fcd7124519ae1c33267688b27bd44be6ac964f3ccc67aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0893769b3f99f28f4262b247595313b3d355a56e7f36673d66dfe2b2a376c799ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88cb88a03f887018080078252089400000000000000000000000000000000000001000180c0822710e1a0010000000000000000000000000000000000000000000000000000000000000080a060bdbc102688803f54a5228f5dd6fdb93877ccb02af626152683ded93d2fbdcda076d0a55a6fc84350507d282984e6c3c869964ff920d476afd5a0b2225fa1858ac0c0", "expectException": "insufficient_account_balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x3bc335959a17395f2c2fcd7124519ae1c33267688b27bd44be6ac964f3ccc67a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x893769b3f99f28f4262b247595313b3d355a56e7f36673d66dfe2b2a376c799e", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x9fa8c515faa3df94527fdbc620dd628241c7e3cec70d6dd5b03834aaf89aa0e8" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x2710", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0x60bdbc102688803f54a5228f5dd6fdb93877ccb02af626152683ded93d2fbdcd", + "s": "0x76d0a55a6fc84350507d282984e6c3c869964ff920d476afd5a0b2225fa1858a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x3bc335959a17395f2c2fcd7124519ae1c33267688b27bd44be6ac964f3ccc67a", @@ -1864,7 +3160,7 @@ }, "027-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=10000-no_calldata-tx_value=1-tx_max_priority_fee_per_gas=8": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1897,7 +3193,55 @@ { "rlp": "0xf902d3f90240a0c94d0e8eb4c5abdc5712d265acc80f1fbd82caec71c7d8c215e51aa7bc84bed2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0be78a57bfc1e7a35b130bd1bc71db1166124d38d6fdca1e9888ab0a2c8be201ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88cb88a03f887018008078252089400000000000000000000000000000000000001000180c0822710e1a0010000000000000000000000000000000000000000000000000000000000000001a088e09bd40d252f72a639df97d0cbb01c408dddddb039cdd565ba746526c18206a074dd71b8d0dd3d7f58aa07ad541c14b63dbb056897b306e935f9d8ed27231a27c0c0", "expectException": "insufficient_account_balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xc94d0e8eb4c5abdc5712d265acc80f1fbd82caec71c7d8c215e51aa7bc84bed2", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xbe78a57bfc1e7a35b130bd1bc71db1166124d38d6fdca1e9888ab0a2c8be201c", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x357e31f82e51fd33b738dcaa6ec1aa97c9653426066298a6442d5bf9eb1967a7" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x08", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x2710", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0x88e09bd40d252f72a639df97d0cbb01c408dddddb039cdd565ba746526c18206", + "s": "0x74dd71b8d0dd3d7f58aa07ad541c14b63dbb056897b306e935f9d8ed27231a27", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xc94d0e8eb4c5abdc5712d265acc80f1fbd82caec71c7d8c215e51aa7bc84bed2", @@ -1933,7 +3277,7 @@ }, "028-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=10000-single_zero_calldata-tx_value=0-tx_max_priority_fee_per_gas=0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1966,7 +3310,55 @@ { "rlp": "0xf902d3f90240a0e063fdabc7dee6aba1e94678762f3d7dba4a2ec79a8ba89a0e2a58a89ea84837a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07a33d28c1cc3ee2f227377efcee55be86b43800dbc6eab900a4670624ec0d976a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88cb88a03f887018080078252089400000000000000000000000000000000000001008000c0822710e1a0010000000000000000000000000000000000000000000000000000000000000001a013a47a7322e5bb083158033fd369a08d3a86898d2fc879c4ea6a6ee655c016dfa00eafa12198e71fc47ab8d8b444c8303ce96f56d3379cc9048876341173abb3e6c0c0", "expectException": "insufficient_account_balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xe063fdabc7dee6aba1e94678762f3d7dba4a2ec79a8ba89a0e2a58a89ea84837", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x7a33d28c1cc3ee2f227377efcee55be86b43800dbc6eab900a4670624ec0d976", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x0e2781721ff7952ef02d5784be2f651dee786400668f153936eed2b71dceb511" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x00", + "accessList": [], + "maxFeePerBlobGas": "0x2710", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0x13a47a7322e5bb083158033fd369a08d3a86898d2fc879c4ea6a6ee655c016df", + "s": "0x0eafa12198e71fc47ab8d8b444c8303ce96f56d3379cc9048876341173abb3e6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xe063fdabc7dee6aba1e94678762f3d7dba4a2ec79a8ba89a0e2a58a89ea84837", @@ -2002,7 +3394,7 @@ }, "029-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=10000-single_zero_calldata-tx_value=0-tx_max_priority_fee_per_gas=8": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2035,7 +3427,55 @@ { "rlp": "0xf902d3f90240a07ba39ca0d9f226f1b1b6dad21f9dd4dfd0ad46a7c074bf6325af6e94c9dc3959a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0669d8d6bd70c11db837f5dfb28d1ca5792d063681ab928ad5c1415f8c8e0af4ba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88cb88a03f887018008078252089400000000000000000000000000000000000001008000c0822710e1a0010000000000000000000000000000000000000000000000000000000000000080a01df6255787a6fd58b1f366845226da7f0e7bfb27b7f1471157eedf27de29ddcaa0537b6a4aca2bdaf432b37c70ffa35c7157aee5db200229348a40eab1120fede8c0c0", "expectException": "insufficient_account_balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x7ba39ca0d9f226f1b1b6dad21f9dd4dfd0ad46a7c074bf6325af6e94c9dc3959", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x669d8d6bd70c11db837f5dfb28d1ca5792d063681ab928ad5c1415f8c8e0af4b", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xb97ba869eabf49e94b8f7c3398ace035ca33253cd8c58d8ad1fb1e4995d107df" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x08", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x00", + "accessList": [], + "maxFeePerBlobGas": "0x2710", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0x1df6255787a6fd58b1f366845226da7f0e7bfb27b7f1471157eedf27de29ddca", + "s": "0x537b6a4aca2bdaf432b37c70ffa35c7157aee5db200229348a40eab1120fede8", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x7ba39ca0d9f226f1b1b6dad21f9dd4dfd0ad46a7c074bf6325af6e94c9dc3959", @@ -2071,7 +3511,7 @@ }, "030-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=10000-single_zero_calldata-tx_value=1-tx_max_priority_fee_per_gas=0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2104,7 +3544,55 @@ { "rlp": "0xf902d3f90240a0c2d753d365a7e5bc4c0eff290145a718ad22a91a17082312fa058c98d04dfcd8a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f58443941ac0a908cd526fa8804998f433402f13fdde54fde99ebb1ea0415376a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88cb88a03f887018080078252089400000000000000000000000000000000000001000100c0822710e1a0010000000000000000000000000000000000000000000000000000000000000001a0f5ec812ad1ffb047af3dc2dd03532e5835ab84dfb11edb203c4f358c71c76ea1a034cac065db16c8163026eeb6e02a220dd1b9b9b4e9f782673652f0b2bed1eba8c0c0", "expectException": "insufficient_account_balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xc2d753d365a7e5bc4c0eff290145a718ad22a91a17082312fa058c98d04dfcd8", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf58443941ac0a908cd526fa8804998f433402f13fdde54fde99ebb1ea0415376", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x0bcb08ef45be02565213f9997de77a4d6d36bf35f3142051f4df5e5f25807617" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x00", + "accessList": [], + "maxFeePerBlobGas": "0x2710", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xf5ec812ad1ffb047af3dc2dd03532e5835ab84dfb11edb203c4f358c71c76ea1", + "s": "0x34cac065db16c8163026eeb6e02a220dd1b9b9b4e9f782673652f0b2bed1eba8", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xc2d753d365a7e5bc4c0eff290145a718ad22a91a17082312fa058c98d04dfcd8", @@ -2140,7 +3628,7 @@ }, "031-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=10000-single_zero_calldata-tx_value=1-tx_max_priority_fee_per_gas=8": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2173,7 +3661,55 @@ { "rlp": "0xf902d3f90240a0443b027154874f618985319e51db3f067ae0863cb55031a0409e9a38cb5ff46ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07a752a92094a36ebb85761a45b5f6b2b825263ea02b6c895022670f3b123ddcea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88cb88a03f887018008078252089400000000000000000000000000000000000001000100c0822710e1a0010000000000000000000000000000000000000000000000000000000000000080a0f3c698b450bd8cc610ec665322cd2afdb81ac4c98edf2c437582ad30029f0aa9a05f6b4564c33dd1f1f18a8ca0bcbff8dd87a0096bdfacc89bb86de30b666d4decc0c0", "expectException": "insufficient_account_balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x443b027154874f618985319e51db3f067ae0863cb55031a0409e9a38cb5ff46c", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x7a752a92094a36ebb85761a45b5f6b2b825263ea02b6c895022670f3b123ddce", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x5bd1a963e26568b71207e445ab5a81aa06936ca33ca9b12b1ffa2850373c61ba" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x08", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x00", + "accessList": [], + "maxFeePerBlobGas": "0x2710", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xf3c698b450bd8cc610ec665322cd2afdb81ac4c98edf2c437582ad30029f0aa9", + "s": "0x5f6b4564c33dd1f1f18a8ca0bcbff8dd87a0096bdfacc89bb86de30b666d4dec", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x443b027154874f618985319e51db3f067ae0863cb55031a0409e9a38cb5ff46c", @@ -2209,7 +3745,7 @@ }, "032-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=10000-single_one_calldata-tx_value=0-tx_max_priority_fee_per_gas=0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2242,7 +3778,55 @@ { "rlp": "0xf902d3f90240a0984f2178ee212a4c02e46e18e6757b1388ce5ce79e50791cb04e161d32903752a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0af7f40459703e6cb534fa48d7f1a34cea129226177931a509aa6bfe07910a344a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88cb88a03f887018080078252089400000000000000000000000000000000000001008001c0822710e1a0010000000000000000000000000000000000000000000000000000000000000080a051f4bae790e2b6c084246c356c3de79fb78657d438c08eb20bb8ed5fd1b3917ba03e95cebba0e840e8587abd7f1aed4b41a04a7141278f52394844155e00eccd0dc0c0", "expectException": "insufficient_account_balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x984f2178ee212a4c02e46e18e6757b1388ce5ce79e50791cb04e161d32903752", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xaf7f40459703e6cb534fa48d7f1a34cea129226177931a509aa6bfe07910a344", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x47ce461e8de2b279018e0ce4a0c33e44a83c2f5a7fe47c8b07ceab555f596d7a" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x01", + "accessList": [], + "maxFeePerBlobGas": "0x2710", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0x51f4bae790e2b6c084246c356c3de79fb78657d438c08eb20bb8ed5fd1b3917b", + "s": "0x3e95cebba0e840e8587abd7f1aed4b41a04a7141278f52394844155e00eccd0d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x984f2178ee212a4c02e46e18e6757b1388ce5ce79e50791cb04e161d32903752", @@ -2278,7 +3862,7 @@ }, "033-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=10000-single_one_calldata-tx_value=0-tx_max_priority_fee_per_gas=8": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2311,7 +3895,55 @@ { "rlp": "0xf902d3f90240a0b97d92d2dacd73c0fc7f23db5842f524ad188240aa2f13f75dd51514305189dfa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0275b12bac5998557e45f795120050125d75f31be1de4c4949b557e34c129e617a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88cb88a03f887018008078252089400000000000000000000000000000000000001008001c0822710e1a0010000000000000000000000000000000000000000000000000000000000000001a016e57d7e5f9de4299e55620476702135b33dcf354e774134782517d3bc69dfeca03694f8a546858dbffd54a43653c8e47f01b4a6f80a27a28509181872a5ca8b23c0c0", "expectException": "insufficient_account_balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xb97d92d2dacd73c0fc7f23db5842f524ad188240aa2f13f75dd51514305189df", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x275b12bac5998557e45f795120050125d75f31be1de4c4949b557e34c129e617", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xd5c072305cef9e407f2044ba90283a38333099ad333cc1a6f715b8830fd080a1" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x08", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x01", + "accessList": [], + "maxFeePerBlobGas": "0x2710", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0x16e57d7e5f9de4299e55620476702135b33dcf354e774134782517d3bc69dfec", + "s": "0x3694f8a546858dbffd54a43653c8e47f01b4a6f80a27a28509181872a5ca8b23", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xb97d92d2dacd73c0fc7f23db5842f524ad188240aa2f13f75dd51514305189df", @@ -2347,7 +3979,7 @@ }, "034-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=10000-single_one_calldata-tx_value=1-tx_max_priority_fee_per_gas=0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2380,7 +4012,55 @@ { "rlp": "0xf902d3f90240a0ade8faf0df3f2b97c175e2f62a38e9867c67d4cca5cebe6792c024af001e8789a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e40dbd3ab14035dbe96096f431cd0434c7c81d1b6e094ec3c9ce1dbdd319ea56a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88cb88a03f887018080078252089400000000000000000000000000000000000001000101c0822710e1a0010000000000000000000000000000000000000000000000000000000000000080a0737b519fe8170fabccda38a492806443c07c8dc9d63ec92efd276e9a2c11b196a06302c874371c1c4d0a1259799a9110221925b2b2e6379e6247572d5182157a24c0c0", "expectException": "insufficient_account_balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xade8faf0df3f2b97c175e2f62a38e9867c67d4cca5cebe6792c024af001e8789", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xe40dbd3ab14035dbe96096f431cd0434c7c81d1b6e094ec3c9ce1dbdd319ea56", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa2038bd59ca1f2fef42c3c6e0867c2628906573e2a810ae972365fdd55927481" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x01", + "accessList": [], + "maxFeePerBlobGas": "0x2710", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0x737b519fe8170fabccda38a492806443c07c8dc9d63ec92efd276e9a2c11b196", + "s": "0x6302c874371c1c4d0a1259799a9110221925b2b2e6379e6247572d5182157a24", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xade8faf0df3f2b97c175e2f62a38e9867c67d4cca5cebe6792c024af001e8789", @@ -2416,7 +4096,7 @@ }, "035-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=10000-single_one_calldata-tx_value=1-tx_max_priority_fee_per_gas=8": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2449,7 +4129,55 @@ { "rlp": "0xf902d3f90240a066c05afcd7331f5978d573863c7189f464408fec20eaac003f7cfa43aace657da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07a4beda4b14cef0e60289081ce27645593ab140f44a43e2fe6edccd9ffb5cfe5a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88cb88a03f887018008078252089400000000000000000000000000000000000001000101c0822710e1a0010000000000000000000000000000000000000000000000000000000000000080a07285eca8fd1ac92612f6244c25b795b9931b01e4604550dfdf90a5aea2ad54dda056aa0d80598c4dbaf9c3e0ee59d7ab8f8360f83695ade39f3b882e218d245409c0c0", "expectException": "insufficient_account_balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x66c05afcd7331f5978d573863c7189f464408fec20eaac003f7cfa43aace657d", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x7a4beda4b14cef0e60289081ce27645593ab140f44a43e2fe6edccd9ffb5cfe5", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa0cd91251370ddc7983f8a3adae645e48a6532bbee0dbf5514668511d81ce9e9" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x08", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x01", + "accessList": [], + "maxFeePerBlobGas": "0x2710", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0x7285eca8fd1ac92612f6244c25b795b9931b01e4604550dfdf90a5aea2ad54dd", + "s": "0x56aa0d80598c4dbaf9c3e0ee59d7ab8f8360f83695ade39f3b882e218d245409", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x66c05afcd7331f5978d573863c7189f464408fec20eaac003f7cfa43aace657d", diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/insufficient_balance_blob_tx_combinations.json b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/insufficient_balance_blob_tx_combinations.json index 9af826fef9b..5d360745e2d 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/insufficient_balance_blob_tx_combinations.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/insufficient_balance_blob_tx_combinations.json @@ -1,7 +1,7 @@ { "000-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(1, 1, 1, 1, 1, 1)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -34,7 +34,155 @@ { "rlp": "0xf90587f90243a0caeabd33c75644c791d2f1bbeb0982c4af1ed129d7a02d20d448097c9e65bdb7a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05d03459b41302d6a781e2cfebd2af499c0949dc7dc662f2c07119b532b717e3ba03661257bb5c84c35577ff84a0c0764824974d6647187857c135085a2f0e3c350a00fb518c7915e8be37f2aa095af144d5e9a121e4dc65b20bbe109b9a001da1cb0b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083019a280c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9033cb88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdeb88803f885010480078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7da06989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139b88803f885010580078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a07efec980ef3b40c74b2de3dee9e9f081b9b4ae4ae1732d64ba0e9553aaf08dc4a0464e6720d2d74b4d68f37f339608278be3a16802b61a46dc9895b898a70939eac0c0", "expectException": "insufficient account balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xcaeabd33c75644c791d2f1bbeb0982c4af1ed129d7a02d20d448097c9e65bdb7", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x5d03459b41302d6a781e2cfebd2af499c0949dc7dc662f2c07119b532b717e3b", + "transactionsTrie": "0x3661257bb5c84c35577ff84a0c0764824974d6647187857c135085a2f0e3c350", + "receiptTrie": "0x0fb518c7915e8be37f2aa095af144d5e9a121e4dc65b20bbe109b9a001da1cb0", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x019a28", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0c0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xd3b79e4b19bff50650f74b36b70764e9e530db070174403c0a788658bcb3946c" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", + "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa", + "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1", + "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x03", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0x5d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78", + "s": "0x7054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x04", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0x903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7d", + "s": "0x6989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x05", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0x7efec980ef3b40c74b2de3dee9e9f081b9b4ae4ae1732d64ba0e9553aaf08dc4", + "s": "0x464e6720d2d74b4d68f37f339608278be3a16802b61a46dc9895b898a70939ea", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xcaeabd33c75644c791d2f1bbeb0982c4af1ed129d7a02d20d448097c9e65bdb7", @@ -70,7 +218,7 @@ }, "001-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(1, 1, 1, 1, 1)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -103,7 +251,135 @@ { "rlp": "0xf904fdf90243a046bd926ae4c549c3fbccb6931a9626eb9749991ab26ddf0f7784622508bbaf0da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa097aeb626e9754dbfb203eef0b83a5dafad30c5ca8a1413a67cdb1f432bc86e02a0e1169f165d2e932731011db28419e7b7ff436823d5020291fc7ba639981a8eb8a080a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830148200c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f902b2b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdeb88803f885010480078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7da06989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139c0c0", "expectException": "insufficient account balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x46bd926ae4c549c3fbccb6931a9626eb9749991ab26ddf0f7784622508bbaf0d", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x97aeb626e9754dbfb203eef0b83a5dafad30c5ca8a1413a67cdb1f432bc86e02", + "transactionsTrie": "0xe1169f165d2e932731011db28419e7b7ff436823d5020291fc7ba639981a8eb8", + "receiptTrie": "0x80a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x014820", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0a0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x2fd5ead209659fa82cfb45ba38172447c3c04266b27b7587640680ad2309c0d6" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", + "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa", + "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1", + "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x03", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0x5d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78", + "s": "0x7054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x04", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0x903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7d", + "s": "0x6989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x46bd926ae4c549c3fbccb6931a9626eb9749991ab26ddf0f7784622508bbaf0d", @@ -139,7 +415,7 @@ }, "002-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(1, 1, 1, 1, 2)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -172,7 +448,136 @@ { "rlp": "0xf9051ff90243a0bbd5e153e71181f0b743bb5150b60cfe0b7a01c086a1d9f8a2fdf1595f1efff5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ee6c2ded7de9a12ace1ec116ec4492d0cf142a856435e23ce443d3fa70ddce0aa0e1169f165d2e932731011db28419e7b7ff436823d5020291fc7ba639981a8eb8a080a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830148200c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f902d4b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdeb8aa03f8a7010480078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a0f767b7e3c41873f941552e15fd67947c18ed7139f03abbe188762e2b69b9dc8ca07f92eace9c234cc6b1353e9f6808165c5950f43ba226d3154b26a7c1b34a2d6bc0c0", "expectException": "insufficient account balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xbbd5e153e71181f0b743bb5150b60cfe0b7a01c086a1d9f8a2fdf1595f1efff5", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xee6c2ded7de9a12ace1ec116ec4492d0cf142a856435e23ce443d3fa70ddce0a", + "transactionsTrie": "0xe1169f165d2e932731011db28419e7b7ff436823d5020291fc7ba639981a8eb8", + "receiptTrie": "0x80a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x014820", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0c0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xafe5c55a9ae563c79cfb0b16940fb2ff6abdc29f2af264917e0210350af6531c" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", + "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa", + "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1", + "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x03", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0x5d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78", + "s": "0x7054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x04", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x01", + "r": "0xf767b7e3c41873f941552e15fd67947c18ed7139f03abbe188762e2b69b9dc8c", + "s": "0x7f92eace9c234cc6b1353e9f6808165c5950f43ba226d3154b26a7c1b34a2d6b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xbbd5e153e71181f0b743bb5150b60cfe0b7a01c086a1d9f8a2fdf1595f1efff5", @@ -208,7 +613,7 @@ }, "003-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(1, 1, 1, 1)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -241,7 +646,115 @@ { "rlp": "0xf90472f90242a0d67ff3e4069d0ace6875a7c3d213213e14f6bc8157982ed311190d0be4530b02a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0061c51abb3a0fb77f6f981419291704db621e13bd631dbec5b8c74bdccc9dcb0a027524ed598ec89039c2cef9bda45833e28f41ecfad76636b0abbac59b15e4f76a09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183080000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90228b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdec0c0", "expectException": "insufficient account balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xd67ff3e4069d0ace6875a7c3d213213e14f6bc8157982ed311190d0be4530b02", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x061c51abb3a0fb77f6f981419291704db621e13bd631dbec5b8c74bdccc9dcb0", + "transactionsTrie": "0x27524ed598ec89039c2cef9bda45833e28f41ecfad76636b0abbac59b15e4f76", + "receiptTrie": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xf618", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x080000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x2e3c0f0100aa0dfa39d50a87e7add279865ec2e0d996e759b6b9e942e060f000" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", + "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa", + "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1", + "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x03", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0x5d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78", + "s": "0x7054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xd67ff3e4069d0ace6875a7c3d213213e14f6bc8157982ed311190d0be4530b02", @@ -277,7 +790,7 @@ }, "004-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(1, 1, 1, 2)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -310,7 +823,116 @@ { "rlp": "0xf90494f90242a0a7be1e9520f1e9557d68aebebfd69eb6561e9aae7b6503d2651376036f191844a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0edc54baabec84f8f85117cb20970e85e8bae30548655c2b957c9a15b9ea455eea027524ed598ec89039c2cef9bda45833e28f41ecfad76636b0abbac59b15e4f76a09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9024ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b8aa03f8a7010380078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a06d029dd5fbca2185367132cb8c6f2b55eb2e040ff2ef329ec5862c01282eac2fa03d8f5297c5e84d8bac8ae590d1c8fb939473cbcdc0db52310a2108b9b47d480ec0c0", "expectException": "insufficient account balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xa7be1e9520f1e9557d68aebebfd69eb6561e9aae7b6503d2651376036f191844", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xedc54baabec84f8f85117cb20970e85e8bae30548655c2b957c9a15b9ea455ee", + "transactionsTrie": "0x27524ed598ec89039c2cef9bda45833e28f41ecfad76636b0abbac59b15e4f76", + "receiptTrie": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xf618", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0a0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x5d554017739d731af48a5411482473ac138705186126ead565de9eb16ed7dbc5" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", + "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa", + "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1", + "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x03", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x01", + "r": "0x6d029dd5fbca2185367132cb8c6f2b55eb2e040ff2ef329ec5862c01282eac2f", + "s": "0x3d8f5297c5e84d8bac8ae590d1c8fb939473cbcdc0db52310a2108b9b47d480e", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xa7be1e9520f1e9557d68aebebfd69eb6561e9aae7b6503d2651376036f191844", @@ -346,7 +968,7 @@ }, "005-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(1, 1, 1, 3)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -379,7 +1001,117 @@ { "rlp": "0xf904b5f90242a041ff942ccfbb158dde8306a76ac4d4405783761e582521ac2833368cf2cf5195a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a2f18d3b3cd4722f0dd35574c211fc582030a172703c0fdcc320f4c49003d771a027524ed598ec89039c2cef9bda45833e28f41ecfad76636b0abbac59b15e4f76a09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9026bb88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b8cb03f8c8010380078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0f1f4b9be64029d9407c88d2a775cb70706e6045d3855ffa0e6a52f416459e96ea038cf645bc6ff2e307b1fcb647576cef0ad491cc75ddd8e2c1c065be1bac2f2bcc0c0", "expectException": "insufficient account balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x41ff942ccfbb158dde8306a76ac4d4405783761e582521ac2833368cf2cf5195", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xa2f18d3b3cd4722f0dd35574c211fc582030a172703c0fdcc320f4c49003d771", + "transactionsTrie": "0x27524ed598ec89039c2cef9bda45833e28f41ecfad76636b0abbac59b15e4f76", + "receiptTrie": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xf618", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0c0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x0fa16e41d59bdfaba7f9dad9ce30dce635949ec76aa8d8fc3d897fedb158314d" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", + "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa", + "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1", + "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x03", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x01", + "r": "0xf1f4b9be64029d9407c88d2a775cb70706e6045d3855ffa0e6a52f416459e96e", + "s": "0x38cf645bc6ff2e307b1fcb647576cef0ad491cc75ddd8e2c1c065be1bac2f2bc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x41ff942ccfbb158dde8306a76ac4d4405783761e582521ac2833368cf2cf5195", @@ -415,7 +1147,7 @@ }, "006-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(1, 1, 2, 2)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -448,7 +1180,117 @@ { "rlp": "0xf904b6f90242a041ff942ccfbb158dde8306a76ac4d4405783761e582521ac2833368cf2cf5195a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0edc54baabec84f8f85117cb20970e85e8bae30548655c2b957c9a15b9ea455eea01f348970ea56fb49a8bc9aaf59e9aba88e02efa880b9a8a2e3cb5ae4f031ae75a09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9026cb88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb8aa03f8a7010280078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a0319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635ea01870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218befb8aa03f8a7010380078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a06d029dd5fbca2185367132cb8c6f2b55eb2e040ff2ef329ec5862c01282eac2fa03d8f5297c5e84d8bac8ae590d1c8fb939473cbcdc0db52310a2108b9b47d480ec0c0", "expectException": "insufficient account balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x41ff942ccfbb158dde8306a76ac4d4405783761e582521ac2833368cf2cf5195", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xedc54baabec84f8f85117cb20970e85e8bae30548655c2b957c9a15b9ea455ee", + "transactionsTrie": "0x1f348970ea56fb49a8bc9aaf59e9aba88e02efa880b9a8a2e3cb5ae4f031ae75", + "receiptTrie": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xf618", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0c0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xf3d262540e4a93390b8ddf30a4d6f2b17f4d91d9a9ea48c79fbe69798ff0ce05" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", + "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa", + "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x01", + "r": "0x319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635e", + "s": "0x1870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218bef", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x03", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x01", + "r": "0x6d029dd5fbca2185367132cb8c6f2b55eb2e040ff2ef329ec5862c01282eac2f", + "s": "0x3d8f5297c5e84d8bac8ae590d1c8fb939473cbcdc0db52310a2108b9b47d480e", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x41ff942ccfbb158dde8306a76ac4d4405783761e582521ac2833368cf2cf5195", @@ -484,7 +1326,7 @@ }, "007-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(1, 1, 1)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -517,7 +1359,95 @@ { "rlp": "0xf903e8f90242a0543932c452845438f3d7157d96ae29d80cf5947e7a268d4a471362d859a51d75a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03d8139d0066d173ca7e797cffc241a0b1696b68c2cf532b0f2cef524033df7f4a07a65a7d509214f67e3472a6a5501dc20f1c689b3d744d0b6bb3f3f9988710f41a010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183060000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9019eb88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429c0c0", "expectException": "insufficient account balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x543932c452845438f3d7157d96ae29d80cf5947e7a268d4a471362d859a51d75", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x3d8139d0066d173ca7e797cffc241a0b1696b68c2cf532b0f2cef524033df7f4", + "transactionsTrie": "0x7a65a7d509214f67e3472a6a5501dc20f1c689b3d744d0b6bb3f3f9988710f41", + "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa410", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x060000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe0300f080ad7ce9a85ad23d85064f23eecd31ae299cd8af29105f38b255ca23a" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", + "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa", + "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1", + "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x543932c452845438f3d7157d96ae29d80cf5947e7a268d4a471362d859a51d75", @@ -553,7 +1483,7 @@ }, "008-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(1, 1, 2)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -586,7 +1516,96 @@ { "rlp": "0xf9040af90242a0491e2ada287e5d1c65ead10c85f7aaa87857b77959de6b05a95e5609adf7b7d4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00bfe25d7e7e30acc82c4c28c0cd34dc8250ace3d03d7f06984a4a656530b374fa07a65a7d509214f67e3472a6a5501dc20f1c689b3d744d0b6bb3f3f9988710f41a010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183080000830e0000a00000000000000000000000000000000000000000000000000000000000000000f901c0b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb8aa03f8a7010280078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a0319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635ea01870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218befc0c0", "expectException": "insufficient account balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x491e2ada287e5d1c65ead10c85f7aaa87857b77959de6b05a95e5609adf7b7d4", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0bfe25d7e7e30acc82c4c28c0cd34dc8250ace3d03d7f06984a4a656530b374f", + "transactionsTrie": "0x7a65a7d509214f67e3472a6a5501dc20f1c689b3d744d0b6bb3f3f9988710f41", + "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa410", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x080000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x3360ac068ee03349bb70196b036e1d9ccb55a0bf21023c9af1980721a567d33a" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", + "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa", + "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x01", + "r": "0x319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635e", + "s": "0x1870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218bef", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x491e2ada287e5d1c65ead10c85f7aaa87857b77959de6b05a95e5609adf7b7d4", @@ -622,7 +1641,7 @@ }, "009-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(1, 1, 3)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -655,7 +1674,97 @@ { "rlp": "0xf9042bf90242a0710ee35335e6d857c82d45dbeacbccdd51047728d7350923522d1cac0493901ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01a3d52fb9896d3c0d9214d9a11dcf744fef4c045db29481a11de0d068b175d30a07a65a7d509214f67e3472a6a5501dc20f1c689b3d744d0b6bb3f3f9988710f41a010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f901e1b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb8cb03f8c8010280078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000280a0f745b5a72a2c990db52b13e7b7827240131b1e67ce876fcf326fa25201644f2ea027c7189e4cf388453094af696515daf8629bcf0e7f02d92dfab462fcc059312dc0c0", "expectException": "insufficient account balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x710ee35335e6d857c82d45dbeacbccdd51047728d7350923522d1cac0493901c", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x1a3d52fb9896d3c0d9214d9a11dcf744fef4c045db29481a11de0d068b175d30", + "transactionsTrie": "0x7a65a7d509214f67e3472a6a5501dc20f1c689b3d744d0b6bb3f3f9988710f41", + "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa410", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0a0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x2c90b6daff268c00fcd809d2043a8beaf2725fe9f83c2f118cb353c00e820183" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", + "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa", + "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x00", + "r": "0xf745b5a72a2c990db52b13e7b7827240131b1e67ce876fcf326fa25201644f2e", + "s": "0x27c7189e4cf388453094af696515daf8629bcf0e7f02d92dfab462fcc059312d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x710ee35335e6d857c82d45dbeacbccdd51047728d7350923522d1cac0493901c", @@ -691,7 +1800,7 @@ }, "010-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(1, 1, 4)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -724,7 +1833,98 @@ { "rlp": "0xf9044cf90242a0ea013146c61b98cdc5a04104e3366bff314b7921ee8d6b5dbd3aa4bc5b7b8fc4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00ecf59dad2bcdf166eb1e1b01e2fd9c0c3dba4e9bd7c45527e2d28e8ba0b8e0aa07a65a7d509214f67e3472a6a5501dc20f1c689b3d744d0b6bb3f3f9988710f41a010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90202b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb8ec03f8e9010280078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a0e9476ce242f923f527e67d058a797f8e5031eb988055d5fc1e8260363eb60c71a040e6602db343c002d4322ba14cc9d62798e7148e79e7d1bb8e2e929741d24cf2c0c0", "expectException": "insufficient account balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xea013146c61b98cdc5a04104e3366bff314b7921ee8d6b5dbd3aa4bc5b7b8fc4", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0ecf59dad2bcdf166eb1e1b01e2fd9c0c3dba4e9bd7c45527e2d28e8ba0b8e0a", + "transactionsTrie": "0x7a65a7d509214f67e3472a6a5501dc20f1c689b3d744d0b6bb3f3f9988710f41", + "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa410", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0c0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x30a92798ab246316c92a23d022514f30485d7df56cc1ea9634f600bd32a56643" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", + "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa", + "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003" + ], + "v": "0x01", + "r": "0xe9476ce242f923f527e67d058a797f8e5031eb988055d5fc1e8260363eb60c71", + "s": "0x40e6602db343c002d4322ba14cc9d62798e7148e79e7d1bb8e2e929741d24cf2", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xea013146c61b98cdc5a04104e3366bff314b7921ee8d6b5dbd3aa4bc5b7b8fc4", @@ -760,7 +1960,7 @@ }, "011-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(1, 2, 2)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -793,7 +1993,97 @@ { "rlp": "0xf9042cf90242a0710ee35335e6d857c82d45dbeacbccdd51047728d7350923522d1cac0493901ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00bfe25d7e7e30acc82c4c28c0cd34dc8250ace3d03d7f06984a4a656530b374fa097c81e3a33952f445d489fefe28ca5dd7f3e11dd8836f3cec1517fd4f84b9ddba010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f901e2b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6b8aa03f8a7010280078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a0319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635ea01870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218befc0c0", "expectException": "insufficient account balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x710ee35335e6d857c82d45dbeacbccdd51047728d7350923522d1cac0493901c", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0bfe25d7e7e30acc82c4c28c0cd34dc8250ace3d03d7f06984a4a656530b374f", + "transactionsTrie": "0x97c81e3a33952f445d489fefe28ca5dd7f3e11dd8836f3cec1517fd4f84b9ddb", + "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa410", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0a0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x7e635c0a9a48552a2879c85c397c5a77cbe11c61b79c5b9e181ba6743534a633" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", + "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0xc2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6", + "s": "0x584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x01", + "r": "0x319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635e", + "s": "0x1870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218bef", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x710ee35335e6d857c82d45dbeacbccdd51047728d7350923522d1cac0493901c", @@ -829,7 +2119,7 @@ }, "012-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(1, 2, 3)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -862,7 +2152,98 @@ { "rlp": "0xf9044df90242a0ea013146c61b98cdc5a04104e3366bff314b7921ee8d6b5dbd3aa4bc5b7b8fc4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01a3d52fb9896d3c0d9214d9a11dcf744fef4c045db29481a11de0d068b175d30a097c81e3a33952f445d489fefe28ca5dd7f3e11dd8836f3cec1517fd4f84b9ddba010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90203b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6b8cb03f8c8010280078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000280a0f745b5a72a2c990db52b13e7b7827240131b1e67ce876fcf326fa25201644f2ea027c7189e4cf388453094af696515daf8629bcf0e7f02d92dfab462fcc059312dc0c0", "expectException": "insufficient account balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xea013146c61b98cdc5a04104e3366bff314b7921ee8d6b5dbd3aa4bc5b7b8fc4", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x1a3d52fb9896d3c0d9214d9a11dcf744fef4c045db29481a11de0d068b175d30", + "transactionsTrie": "0x97c81e3a33952f445d489fefe28ca5dd7f3e11dd8836f3cec1517fd4f84b9ddb", + "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa410", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0c0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xd59de7b808a363cd4a2f884733d2311ac5fdff59b693de490ed67726b60e069c" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", + "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0xc2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6", + "s": "0x584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x00", + "r": "0xf745b5a72a2c990db52b13e7b7827240131b1e67ce876fcf326fa25201644f2e", + "s": "0x27c7189e4cf388453094af696515daf8629bcf0e7f02d92dfab462fcc059312d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xea013146c61b98cdc5a04104e3366bff314b7921ee8d6b5dbd3aa4bc5b7b8fc4", @@ -898,7 +2279,7 @@ }, "013-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(2, 2, 2)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -931,7 +2312,98 @@ { "rlp": "0xf9044ef90242a0ea013146c61b98cdc5a04104e3366bff314b7921ee8d6b5dbd3aa4bc5b7b8fc4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00bfe25d7e7e30acc82c4c28c0cd34dc8250ace3d03d7f06984a4a656530b374fa0f8394831df420eef1722950e31ff1f2aa90b97ec0eb98526069781f2a8ba7029a010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90204b8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6b8aa03f8a7010280078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a0319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635ea01870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218befc0c0", "expectException": "insufficient account balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xea013146c61b98cdc5a04104e3366bff314b7921ee8d6b5dbd3aa4bc5b7b8fc4", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0bfe25d7e7e30acc82c4c28c0cd34dc8250ace3d03d7f06984a4a656530b374f", + "transactionsTrie": "0xf8394831df420eef1722950e31ff1f2aa90b97ec0eb98526069781f2a8ba7029", + "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa410", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0c0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x0ac07e243311710dee47db6f264223a645e80bd0b18ae1240fc9183c15ffdb62" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0x2834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5", + "s": "0x5566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0xc2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6", + "s": "0x584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x01", + "r": "0x319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635e", + "s": "0x1870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218bef", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xea013146c61b98cdc5a04104e3366bff314b7921ee8d6b5dbd3aa4bc5b7b8fc4", @@ -967,7 +2439,7 @@ }, "014-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(1, 1)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1000,7 +2472,75 @@ { "rlp": "0xf9035ef90242a0d9afd2e454bd4dbaba688c0f8a0463689e50da4fe4bd675a9fb59434bedc2d55a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa002429286eb574e0b2a52afa14c942d255ad1d25578aeb306e8b2df5293681ebfa0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183040000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90114b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccc0c0", "expectException": "insufficient account balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xd9afd2e454bd4dbaba688c0f8a0463689e50da4fe4bd675a9fb59434bedc2d55", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x02429286eb574e0b2a52afa14c942d255ad1d25578aeb306e8b2df5293681ebf", + "transactionsTrie": "0xda80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902", + "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x5208", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x040000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xc3cfb6dab012df61cdb3e226e64b17cf54857b0df15b79098c02c91d02b8f5f2" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", + "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa", + "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xd9afd2e454bd4dbaba688c0f8a0463689e50da4fe4bd675a9fb59434bedc2d55", @@ -1036,7 +2576,7 @@ }, "015-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(1, 2)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1069,7 +2609,76 @@ { "rlp": "0xf90380f90242a026df0c4b1db060258d652d48eb7f99d14377451c7b8cf1ca965255e24ccc13ada01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0506e57b8046ce66151e13fd567fbc87d03cffddbe43b0de68959827e99ae3be1a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183060000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90136b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6c0c0", "expectException": "insufficient account balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x26df0c4b1db060258d652d48eb7f99d14377451c7b8cf1ca965255e24ccc13ad", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x506e57b8046ce66151e13fd567fbc87d03cffddbe43b0de68959827e99ae3be1", + "transactionsTrie": "0xda80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902", + "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x5208", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x060000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x1d4cb7c31c1bf0dfdf75815ff12910c8fcd821416b1356ca638e577ab2ae67bc" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", + "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0xc2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6", + "s": "0x584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x26df0c4b1db060258d652d48eb7f99d14377451c7b8cf1ca965255e24ccc13ad", @@ -1105,7 +2714,7 @@ }, "016-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(1, 3)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1138,7 +2747,77 @@ { "rlp": "0xf903a1f90242a0ba767c2c2e90cde86d6ae67280861153509b1874b23540dc9095dd07f8c8f23da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04d8a514d359356a1e69275bd54d56a31090d5ee3dcad051e7bb3114ea62866e8a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183080000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90157b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab8cb03f8c8010180078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a08e5455a1dfad86ef676e7deeda1aa045e8e1d0b1c62bff9a8720b8dc91de2746a05f2e35151ad3640d2724257c65cfabe33c033897ba27b10232a29be4033ac391c0c0", "expectException": "insufficient account balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xba767c2c2e90cde86d6ae67280861153509b1874b23540dc9095dd07f8c8f23d", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x4d8a514d359356a1e69275bd54d56a31090d5ee3dcad051e7bb3114ea62866e8", + "transactionsTrie": "0xda80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902", + "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x5208", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x080000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x46efe02cd4bce6f5ccc379e2c9d307e4ebdb15b94803e3cde0917e19f0a7267e" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", + "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x01", + "r": "0x8e5455a1dfad86ef676e7deeda1aa045e8e1d0b1c62bff9a8720b8dc91de2746", + "s": "0x5f2e35151ad3640d2724257c65cfabe33c033897ba27b10232a29be4033ac391", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xba767c2c2e90cde86d6ae67280861153509b1874b23540dc9095dd07f8c8f23d", @@ -1174,7 +2853,7 @@ }, "017-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(1, 4)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1207,7 +2886,78 @@ { "rlp": "0xf903c2f90242a041c831748de94587dd640f864c4b0c7dd73f4824cbe28ea32e7c0edfe3e605b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07f04b554adc1b019d8687cf572bf52deea7f9db36c270d6bea7eeef145ada699a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90178b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab8ec03f8e9010180078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000380a0a9f1ef3f0dcf6833817f20e660ff751b5ede0573c495c2f707ba9bd7f8d6639fa072b7268169653fa15613ecee69def2deef2562057b65bf753c23f3e480609261c0c0", "expectException": "insufficient account balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x41c831748de94587dd640f864c4b0c7dd73f4824cbe28ea32e7c0edfe3e605b2", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x7f04b554adc1b019d8687cf572bf52deea7f9db36c270d6bea7eeef145ada699", + "transactionsTrie": "0xda80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902", + "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x5208", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0a0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x9d4240e01e7a864a89ea33b1a355f5a86cb422cfc33c8009cf89c56786a0a3d5" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", + "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003" + ], + "v": "0x00", + "r": "0xa9f1ef3f0dcf6833817f20e660ff751b5ede0573c495c2f707ba9bd7f8d6639f", + "s": "0x72b7268169653fa15613ecee69def2deef2562057b65bf753c23f3e480609261", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x41c831748de94587dd640f864c4b0c7dd73f4824cbe28ea32e7c0edfe3e605b2", @@ -1243,7 +2993,7 @@ }, "018-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(1, 5)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1276,7 +3026,79 @@ { "rlp": "0xf903e5f90242a02e4f1af286113c250abda7895eb807583cb906b59aff8e59e35d19c23f624de6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa041e4f8e82c7e61f05afb5c8dc629e49cc896302f003633838962f60c3a4fd347a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9019bb88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab9010e03f9010a010180078252089400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a03b2d2b489ff492b72d5a89673af2a2840830ead9d6cf2544e444385818f4db97a03ba1a6691a91deb8a72304e4986800f766d95f552fceb901a37c4f913f9a1f5ec0c0", "expectException": "insufficient account balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x2e4f1af286113c250abda7895eb807583cb906b59aff8e59e35d19c23f624de6", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x41e4f8e82c7e61f05afb5c8dc629e49cc896302f003633838962f60c3a4fd347", + "transactionsTrie": "0xda80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902", + "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x5208", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0c0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x0ae3828f19ac01877130a78b424c0b4ea3186b7e250fe55c7b7708187fd62de9" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", + "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003", + "0x0100000000000000000000000000000000000000000000000000000000000004" + ], + "v": "0x01", + "r": "0x3b2d2b489ff492b72d5a89673af2a2840830ead9d6cf2544e444385818f4db97", + "s": "0x3ba1a6691a91deb8a72304e4986800f766d95f552fceb901a37c4f913f9a1f5e", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x2e4f1af286113c250abda7895eb807583cb906b59aff8e59e35d19c23f624de6", @@ -1312,7 +3134,7 @@ }, "019-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(2, 2)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1345,7 +3167,77 @@ { "rlp": "0xf903a2f90242a0ba767c2c2e90cde86d6ae67280861153509b1874b23540dc9095dd07f8c8f23da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0506e57b8046ce66151e13fd567fbc87d03cffddbe43b0de68959827e99ae3be1a0ea6c96dedfc374311b6d9bf5a19305c5f7d80aa4c4bcf129134f96a7579e855ca0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183080000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90158b8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6c0c0", "expectException": "insufficient account balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xba767c2c2e90cde86d6ae67280861153509b1874b23540dc9095dd07f8c8f23d", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x506e57b8046ce66151e13fd567fbc87d03cffddbe43b0de68959827e99ae3be1", + "transactionsTrie": "0xea6c96dedfc374311b6d9bf5a19305c5f7d80aa4c4bcf129134f96a7579e855c", + "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x5208", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x080000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x882074cbe60b2e0c65a26c206a0f0bbf95ede491976c8a58b3c4d2d63342876a" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0x2834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5", + "s": "0x5566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0xc2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6", + "s": "0x584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xba767c2c2e90cde86d6ae67280861153509b1874b23540dc9095dd07f8c8f23d", @@ -1381,7 +3273,7 @@ }, "020-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(2, 3)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1414,7 +3306,78 @@ { "rlp": "0xf903c3f90242a041c831748de94587dd640f864c4b0c7dd73f4824cbe28ea32e7c0edfe3e605b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04d8a514d359356a1e69275bd54d56a31090d5ee3dcad051e7bb3114ea62866e8a0ea6c96dedfc374311b6d9bf5a19305c5f7d80aa4c4bcf129134f96a7579e855ca0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90179b8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b8cb03f8c8010180078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a08e5455a1dfad86ef676e7deeda1aa045e8e1d0b1c62bff9a8720b8dc91de2746a05f2e35151ad3640d2724257c65cfabe33c033897ba27b10232a29be4033ac391c0c0", "expectException": "insufficient account balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x41c831748de94587dd640f864c4b0c7dd73f4824cbe28ea32e7c0edfe3e605b2", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x4d8a514d359356a1e69275bd54d56a31090d5ee3dcad051e7bb3114ea62866e8", + "transactionsTrie": "0xea6c96dedfc374311b6d9bf5a19305c5f7d80aa4c4bcf129134f96a7579e855c", + "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x5208", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0a0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x54def9425700b58b0e614cdf492302422c5c5c0af0097eee6d293f8f900be78d" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0x2834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5", + "s": "0x5566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x01", + "r": "0x8e5455a1dfad86ef676e7deeda1aa045e8e1d0b1c62bff9a8720b8dc91de2746", + "s": "0x5f2e35151ad3640d2724257c65cfabe33c033897ba27b10232a29be4033ac391", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x41c831748de94587dd640f864c4b0c7dd73f4824cbe28ea32e7c0edfe3e605b2", @@ -1450,7 +3413,7 @@ }, "021-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(2, 4)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1483,7 +3446,79 @@ { "rlp": "0xf903e4f90242a02e4f1af286113c250abda7895eb807583cb906b59aff8e59e35d19c23f624de6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07f04b554adc1b019d8687cf572bf52deea7f9db36c270d6bea7eeef145ada699a0ea6c96dedfc374311b6d9bf5a19305c5f7d80aa4c4bcf129134f96a7579e855ca0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9019ab8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b8ec03f8e9010180078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000380a0a9f1ef3f0dcf6833817f20e660ff751b5ede0573c495c2f707ba9bd7f8d6639fa072b7268169653fa15613ecee69def2deef2562057b65bf753c23f3e480609261c0c0", "expectException": "insufficient account balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x2e4f1af286113c250abda7895eb807583cb906b59aff8e59e35d19c23f624de6", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x7f04b554adc1b019d8687cf572bf52deea7f9db36c270d6bea7eeef145ada699", + "transactionsTrie": "0xea6c96dedfc374311b6d9bf5a19305c5f7d80aa4c4bcf129134f96a7579e855c", + "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x5208", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0c0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x0be03f76cbd053c9533225b250f1d6de31e2e7b828194c515591dec1af8d6776" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0x2834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5", + "s": "0x5566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003" + ], + "v": "0x00", + "r": "0xa9f1ef3f0dcf6833817f20e660ff751b5ede0573c495c2f707ba9bd7f8d6639f", + "s": "0x72b7268169653fa15613ecee69def2deef2562057b65bf753c23f3e480609261", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x2e4f1af286113c250abda7895eb807583cb906b59aff8e59e35d19c23f624de6", @@ -1519,7 +3554,7 @@ }, "022-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(3, 3)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1552,7 +3587,79 @@ { "rlp": "0xf903e4f90242a02e4f1af286113c250abda7895eb807583cb906b59aff8e59e35d19c23f624de6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04d8a514d359356a1e69275bd54d56a31090d5ee3dcad051e7bb3114ea62866e8a03e6efb03c87131b8c8563c972bb9916c3c3a7c84383adb351b8bbfb7a07f1c44a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9019ab8cb03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299b8cb03f8c8010180078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a08e5455a1dfad86ef676e7deeda1aa045e8e1d0b1c62bff9a8720b8dc91de2746a05f2e35151ad3640d2724257c65cfabe33c033897ba27b10232a29be4033ac391c0c0", "expectException": "insufficient account balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x2e4f1af286113c250abda7895eb807583cb906b59aff8e59e35d19c23f624de6", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x4d8a514d359356a1e69275bd54d56a31090d5ee3dcad051e7bb3114ea62866e8", + "transactionsTrie": "0x3e6efb03c87131b8c8563c972bb9916c3c3a7c84383adb351b8bbfb7a07f1c44", + "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x5208", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0c0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x8af317c96c950be6ade511dcd9ea18b1d65ca2d1313197107446f2dabd002f8d" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x01", + "r": "0xfa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257", + "s": "0x7c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x01", + "r": "0x8e5455a1dfad86ef676e7deeda1aa045e8e1d0b1c62bff9a8720b8dc91de2746", + "s": "0x5f2e35151ad3640d2724257c65cfabe33c033897ba27b10232a29be4033ac391", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x2e4f1af286113c250abda7895eb807583cb906b59aff8e59e35d19c23f624de6", @@ -1588,7 +3695,7 @@ }, "023-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(1,)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1621,7 +3728,55 @@ { "rlp": "0xf902d1f90240a0cb295c514c7f05bf55bd502f1aae8de4faa0c5721e853644a9b80125be4f1d91a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f79c1f1858e40fb857f4baaf29fb17954e0b423e80d6170cdbe7b8180a6e3809a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", "expectException": "insufficient account balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xcb295c514c7f05bf55bd502f1aae8de4faa0c5721e853644a9b80125be4f1d91", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf79c1f1858e40fb857f4baaf29fb17954e0b423e80d6170cdbe7b8180a6e3809", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x63fec1369cd9d65b290ae94fc996e8ebf2c79051c6bf35141dd04fae3e4ed933" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", + "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xcb295c514c7f05bf55bd502f1aae8de4faa0c5721e853644a9b80125be4f1d91", @@ -1657,7 +3812,7 @@ }, "024-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(2,)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1690,7 +3845,56 @@ { "rlp": "0xf902f3f90240a0555af0d77fd31dc9a181eacde4d6449fa4a4a48439375cbf9e2658a834883901a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa055062ff0403a751369681b1a8c78b7479e646eb195f45d24785b05bcc2c3ef54a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183040000830e0000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10c0c0", "expectException": "insufficient account balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x555af0d77fd31dc9a181eacde4d6449fa4a4a48439375cbf9e2658a834883901", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x55062ff0403a751369681b1a8c78b7479e646eb195f45d24785b05bcc2c3ef54", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x040000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x10f6bf0ebaf88a7f35716adc2b76b09a80736ecccbdd9ed51f3bcf61b67ab920" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0x2834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5", + "s": "0x5566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x555af0d77fd31dc9a181eacde4d6449fa4a4a48439375cbf9e2658a834883901", @@ -1726,7 +3930,7 @@ }, "025-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(3,)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1759,7 +3963,57 @@ { "rlp": "0xf90314f90240a0b2e2c8999965611df1fcacfaf7c29054a8fd3a09457af5730667fbafe543ca8da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a48d0e79248037a5d478e952d0f84f2de67b81bd690b001d8f40cc645ea71527a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183060000830e0000a00000000000000000000000000000000000000000000000000000000000000000f8cdb8cb03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299c0c0", "expectException": "insufficient account balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xb2e2c8999965611df1fcacfaf7c29054a8fd3a09457af5730667fbafe543ca8d", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xa48d0e79248037a5d478e952d0f84f2de67b81bd690b001d8f40cc645ea71527", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x060000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x02ebb7f9171a61f30e4a40e2eed4d7289243def7997979f40ab84574f40f71a7" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x01", + "r": "0xfa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257", + "s": "0x7c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xb2e2c8999965611df1fcacfaf7c29054a8fd3a09457af5730667fbafe543ca8d", @@ -1795,7 +4049,7 @@ }, "026-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(4,)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1828,7 +4082,58 @@ { "rlp": "0xf90335f90240a0f702107e03d66d071e4abe8239f4293b417165b64869bbf46206b99cfa717064a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c54d69c3347142f5e89a0627c040b1cae799df927387d8b2287562f366086da2a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183080000830e0000a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e9018080078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a05c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354a038db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05c0c0", "expectException": "insufficient account balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xf702107e03d66d071e4abe8239f4293b417165b64869bbf46206b99cfa717064", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xc54d69c3347142f5e89a0627c040b1cae799df927387d8b2287562f366086da2", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x080000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xf31577f4e429cc18fd6716e2a0d78f8f0ff6c10b9ead22ee5ed00baa89303b87" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003" + ], + "v": "0x01", + "r": "0x5c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354", + "s": "0x38db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xf702107e03d66d071e4abe8239f4293b417165b64869bbf46206b99cfa717064", @@ -1864,7 +4169,7 @@ }, "027-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(5,)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1897,7 +4202,59 @@ { "rlp": "0xf90359f90240a0a118ab4dc79cfd3002ba1fc91f58e37dbb6ce0fada93f1002f7a440f75206f8fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00d58e806b064c735bd0f8061ffb3449554550a6c386a6759b1970660ecf63986a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90111b9010e03f9010a018080078252089400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000480a05b5b2b349f42d7b29873999b615a746b86b25832b74a4e443e34fa9222e3de16a033a55d0dc9ab01945ab29789a6c93b98541724dd932467aed99cc92bc5437c84c0c0", "expectException": "insufficient account balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xa118ab4dc79cfd3002ba1fc91f58e37dbb6ce0fada93f1002f7a440f75206f8f", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0d58e806b064c735bd0f8061ffb3449554550a6c386a6759b1970660ecf63986", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0a0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe900787f74aaaeaecaeba10affb6fd922813ee87a871cb3b09c934710b88f12d" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003", + "0x0100000000000000000000000000000000000000000000000000000000000004" + ], + "v": "0x00", + "r": "0x5b5b2b349f42d7b29873999b615a746b86b25832b74a4e443e34fa9222e3de16", + "s": "0x33a55d0dc9ab01945ab29789a6c93b98541724dd932467aed99cc92bc5437c84", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xa118ab4dc79cfd3002ba1fc91f58e37dbb6ce0fada93f1002f7a440f75206f8f", @@ -1933,7 +4290,7 @@ }, "028-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(6,)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1966,7 +4323,60 @@ { "rlp": "0xf9037af90240a04b957eec4d913b69624a38f71d99095323117b6d79c4f8c9c079f2f2123165a3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa080242300467fba448d8a7e7959ca5b16a09ee59ada43e34876dc94ee97f310b6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90132b9012f03f9012b018080078252089400000000000000000000000000000000000001000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a0a3fde4e69b58ab7846a662946c81c947872ca16ed64bca3e9f2e298a83a7dd0fa036264b4930ad766cf871de20d6b5a66c4660988c83a0bfad8f50847d16cab98dc0c0", "expectException": "insufficient account balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x4b957eec4d913b69624a38f71d99095323117b6d79c4f8c9c079f2f2123165a3", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x80242300467fba448d8a7e7959ca5b16a09ee59ada43e34876dc94ee97f310b6", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0c0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa248f941810b740ca6536fa8cc2caaf50ce68d6afe2f280f9a2fb84be5095869" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003", + "0x0100000000000000000000000000000000000000000000000000000000000004", + "0x0100000000000000000000000000000000000000000000000000000000000005" + ], + "v": "0x01", + "r": "0xa3fde4e69b58ab7846a662946c81c947872ca16ed64bca3e9f2e298a83a7dd0f", + "s": "0x36264b4930ad766cf871de20d6b5a66c4660988c83a0bfad8f50847d16cab98d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x4b957eec4d913b69624a38f71d99095323117b6d79c4f8c9c079f2f2123165a3", @@ -2002,7 +4412,7 @@ }, "029-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(2, 1, 1, 1, 1)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2035,7 +4445,136 @@ { "rlp": "0xf9051ff90243a0bbd5e153e71181f0b743bb5150b60cfe0b7a01c086a1d9f8a2fdf1595f1efff5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa097aeb626e9754dbfb203eef0b83a5dafad30c5ca8a1413a67cdb1f432bc86e02a0395c0fd9acef064db914950ab95a70bf60d078b6576571aafb1ffa04e8ab597ba080a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830148200c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f902d4b8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdeb88803f885010480078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7da06989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139c0c0", "expectException": "insufficient account balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xbbd5e153e71181f0b743bb5150b60cfe0b7a01c086a1d9f8a2fdf1595f1efff5", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x97aeb626e9754dbfb203eef0b83a5dafad30c5ca8a1413a67cdb1f432bc86e02", + "transactionsTrie": "0x395c0fd9acef064db914950ab95a70bf60d078b6576571aafb1ffa04e8ab597b", + "receiptTrie": "0x80a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x014820", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0c0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x75e41f6c36bcf8946ecaaca60e3ce3bda5f98ae98cd16f543ff94ec9a4fad751" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0x2834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5", + "s": "0x5566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa", + "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1", + "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x03", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0x5d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78", + "s": "0x7054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x04", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0x903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7d", + "s": "0x6989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xbbd5e153e71181f0b743bb5150b60cfe0b7a01c086a1d9f8a2fdf1595f1efff5", @@ -2071,7 +4610,7 @@ }, "030-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(2, 1, 1, 1)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2104,7 +4643,116 @@ { "rlp": "0xf90494f90242a0a7be1e9520f1e9557d68aebebfd69eb6561e9aae7b6503d2651376036f191844a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0061c51abb3a0fb77f6f981419291704db621e13bd631dbec5b8c74bdccc9dcb0a06a47e76bc47ace58857e7b853093b180c3cf9a3b9936f90ef662038fa35a5006a09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9024ab8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdec0c0", "expectException": "insufficient account balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xa7be1e9520f1e9557d68aebebfd69eb6561e9aae7b6503d2651376036f191844", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x061c51abb3a0fb77f6f981419291704db621e13bd631dbec5b8c74bdccc9dcb0", + "transactionsTrie": "0x6a47e76bc47ace58857e7b853093b180c3cf9a3b9936f90ef662038fa35a5006", + "receiptTrie": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xf618", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0a0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xafa9704a49aa3d0223f06a71c7c8a3169d9c4cb8fc4d0b350ac59ad01bfd8d22" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0x2834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5", + "s": "0x5566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa", + "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1", + "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x03", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0x5d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78", + "s": "0x7054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xa7be1e9520f1e9557d68aebebfd69eb6561e9aae7b6503d2651376036f191844", @@ -2140,7 +4788,7 @@ }, "031-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(3, 1, 1, 1)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2173,7 +4821,117 @@ { "rlp": "0xf904b5f90242a041ff942ccfbb158dde8306a76ac4d4405783761e582521ac2833368cf2cf5195a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0061c51abb3a0fb77f6f981419291704db621e13bd631dbec5b8c74bdccc9dcb0a03b5dee62d3cc6ac1fc0dede1db42f79fb8dc82b61988c3975eb93981ce8319b7a09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9026bb8cb03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdec0c0", "expectException": "insufficient account balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x41ff942ccfbb158dde8306a76ac4d4405783761e582521ac2833368cf2cf5195", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x061c51abb3a0fb77f6f981419291704db621e13bd631dbec5b8c74bdccc9dcb0", + "transactionsTrie": "0x3b5dee62d3cc6ac1fc0dede1db42f79fb8dc82b61988c3975eb93981ce8319b7", + "receiptTrie": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xf618", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0c0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x7c95d215af40d96c4061f0745f353f40ac1fc7bd78cf21474440dc3e3d741c97" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x01", + "r": "0xfa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257", + "s": "0x7c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa", + "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1", + "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x03", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0x5d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78", + "s": "0x7054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x41ff942ccfbb158dde8306a76ac4d4405783761e582521ac2833368cf2cf5195", @@ -2209,7 +4967,7 @@ }, "032-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(2, 2, 1, 1)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2242,7 +5000,117 @@ { "rlp": "0xf904b6f90242a041ff942ccfbb158dde8306a76ac4d4405783761e582521ac2833368cf2cf5195a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0061c51abb3a0fb77f6f981419291704db621e13bd631dbec5b8c74bdccc9dcb0a0144a3e0168a33099650fc76157eef4022e01bfc2f3caa9c19fbc3cdce20de61ea09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9026cb8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6b88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdec0c0", "expectException": "insufficient account balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x41ff942ccfbb158dde8306a76ac4d4405783761e582521ac2833368cf2cf5195", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x061c51abb3a0fb77f6f981419291704db621e13bd631dbec5b8c74bdccc9dcb0", + "transactionsTrie": "0x144a3e0168a33099650fc76157eef4022e01bfc2f3caa9c19fbc3cdce20de61e", + "receiptTrie": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xf618", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0c0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x1cd9cdf93a0cd24ec9dc983ccd40882bed54b368166bc182da0b6a1cec72e5e1" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0x2834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5", + "s": "0x5566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0xc2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6", + "s": "0x584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1", + "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x03", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0x5d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78", + "s": "0x7054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x41ff942ccfbb158dde8306a76ac4d4405783761e582521ac2833368cf2cf5195", @@ -2278,7 +5146,7 @@ }, "033-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(2, 1, 1)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2311,7 +5179,96 @@ { "rlp": "0xf9040af90242a0491e2ada287e5d1c65ead10c85f7aaa87857b77959de6b05a95e5609adf7b7d4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03d8139d0066d173ca7e797cffc241a0b1696b68c2cf532b0f2cef524033df7f4a0dd5a0058d15f5284b33e254743f334cb65c7a6db4055a72b6e7ff6f518e1e296a010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183080000830e0000a00000000000000000000000000000000000000000000000000000000000000000f901c0b8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429c0c0", "expectException": "insufficient account balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x491e2ada287e5d1c65ead10c85f7aaa87857b77959de6b05a95e5609adf7b7d4", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x3d8139d0066d173ca7e797cffc241a0b1696b68c2cf532b0f2cef524033df7f4", + "transactionsTrie": "0xdd5a0058d15f5284b33e254743f334cb65c7a6db4055a72b6e7ff6f518e1e296", + "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa410", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x080000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x1d03fe39fb8e7321203ab9fd3d6fe351f5266405b002d32448fd5914dae17dc8" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0x2834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5", + "s": "0x5566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa", + "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1", + "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x491e2ada287e5d1c65ead10c85f7aaa87857b77959de6b05a95e5609adf7b7d4", @@ -2347,7 +5304,7 @@ }, "034-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(3, 1, 1)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2380,7 +5337,97 @@ { "rlp": "0xf9042bf90242a0710ee35335e6d857c82d45dbeacbccdd51047728d7350923522d1cac0493901ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03d8139d0066d173ca7e797cffc241a0b1696b68c2cf532b0f2cef524033df7f4a0a8190535e1111958188bfa09eb16ca84935395a1989047acde654d0e91e30726a010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f901e1b8cb03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429c0c0", "expectException": "insufficient account balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x710ee35335e6d857c82d45dbeacbccdd51047728d7350923522d1cac0493901c", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x3d8139d0066d173ca7e797cffc241a0b1696b68c2cf532b0f2cef524033df7f4", + "transactionsTrie": "0xa8190535e1111958188bfa09eb16ca84935395a1989047acde654d0e91e30726", + "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa410", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0a0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x3c6432461b2324e29e7679544a7f1a928ca71c94d3fe8e8eb9ad81875719f403" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x01", + "r": "0xfa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257", + "s": "0x7c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa", + "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1", + "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x710ee35335e6d857c82d45dbeacbccdd51047728d7350923522d1cac0493901c", @@ -2416,7 +5463,7 @@ }, "035-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(4, 1, 1)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2449,7 +5496,98 @@ { "rlp": "0xf9044cf90242a0ea013146c61b98cdc5a04104e3366bff314b7921ee8d6b5dbd3aa4bc5b7b8fc4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03d8139d0066d173ca7e797cffc241a0b1696b68c2cf532b0f2cef524033df7f4a0ed872473d1fa8d3e3d518fa9faccb5b513ca00ab4668833e535b2b5074c7e02da010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90202b8ec03f8e9018080078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a05c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354a038db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429c0c0", "expectException": "insufficient account balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xea013146c61b98cdc5a04104e3366bff314b7921ee8d6b5dbd3aa4bc5b7b8fc4", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x3d8139d0066d173ca7e797cffc241a0b1696b68c2cf532b0f2cef524033df7f4", + "transactionsTrie": "0xed872473d1fa8d3e3d518fa9faccb5b513ca00ab4668833e535b2b5074c7e02d", + "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa410", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0c0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x747e10bb9f459d68a4135cec1f9c5ca4dab8e8f974d519b60bf215871d627389" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003" + ], + "v": "0x01", + "r": "0x5c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354", + "s": "0x38db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa", + "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1", + "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xea013146c61b98cdc5a04104e3366bff314b7921ee8d6b5dbd3aa4bc5b7b8fc4", @@ -2485,7 +5623,7 @@ }, "036-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(2, 2, 1)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2518,7 +5656,97 @@ { "rlp": "0xf9042cf90242a0710ee35335e6d857c82d45dbeacbccdd51047728d7350923522d1cac0493901ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03d8139d0066d173ca7e797cffc241a0b1696b68c2cf532b0f2cef524033df7f4a0f8394831df420eef1722950e31ff1f2aa90b97ec0eb98526069781f2a8ba7029a010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f901e2b8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6b88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429c0c0", "expectException": "insufficient account balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x710ee35335e6d857c82d45dbeacbccdd51047728d7350923522d1cac0493901c", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x3d8139d0066d173ca7e797cffc241a0b1696b68c2cf532b0f2cef524033df7f4", + "transactionsTrie": "0xf8394831df420eef1722950e31ff1f2aa90b97ec0eb98526069781f2a8ba7029", + "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa410", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0a0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x57dae5afb124528c66c0b71fe56f593db982cc837da21bfcdd5fe7c173e27aee" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0x2834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5", + "s": "0x5566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0xc2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6", + "s": "0x584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1", + "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x710ee35335e6d857c82d45dbeacbccdd51047728d7350923522d1cac0493901c", @@ -2554,7 +5782,7 @@ }, "037-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(3, 2, 1)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2587,7 +5815,98 @@ { "rlp": "0xf9044df90242a0ea013146c61b98cdc5a04104e3366bff314b7921ee8d6b5dbd3aa4bc5b7b8fc4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03d8139d0066d173ca7e797cffc241a0b1696b68c2cf532b0f2cef524033df7f4a02c886b86a20b8dad15bc0fafdc356676ddfa4db118e9414cea433d6797a3b483a010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90203b8cb03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6b88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429c0c0", "expectException": "insufficient account balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xea013146c61b98cdc5a04104e3366bff314b7921ee8d6b5dbd3aa4bc5b7b8fc4", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x3d8139d0066d173ca7e797cffc241a0b1696b68c2cf532b0f2cef524033df7f4", + "transactionsTrie": "0x2c886b86a20b8dad15bc0fafdc356676ddfa4db118e9414cea433d6797a3b483", + "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa410", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0c0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xb4c99eb503cd5e5b15c51d08f9a66c0a7527ea2bdc607c3318822205762b1713" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x01", + "r": "0xfa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257", + "s": "0x7c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0xc2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6", + "s": "0x584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1", + "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xea013146c61b98cdc5a04104e3366bff314b7921ee8d6b5dbd3aa4bc5b7b8fc4", @@ -2623,7 +5942,7 @@ }, "038-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(2, 1)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2656,7 +5975,76 @@ { "rlp": "0xf90380f90242a026df0c4b1db060258d652d48eb7f99d14377451c7b8cf1ca965255e24ccc13ada01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa002429286eb574e0b2a52afa14c942d255ad1d25578aeb306e8b2df5293681ebfa0ea6c96dedfc374311b6d9bf5a19305c5f7d80aa4c4bcf129134f96a7579e855ca0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183060000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90136b8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccc0c0", "expectException": "insufficient account balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x26df0c4b1db060258d652d48eb7f99d14377451c7b8cf1ca965255e24ccc13ad", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x02429286eb574e0b2a52afa14c942d255ad1d25578aeb306e8b2df5293681ebf", + "transactionsTrie": "0xea6c96dedfc374311b6d9bf5a19305c5f7d80aa4c4bcf129134f96a7579e855c", + "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x5208", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x060000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x0ef4f1fd0a5da712df7e33d05830972873c21fc7fa411fab51a23f9fd3a8dd7c" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0x2834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5", + "s": "0x5566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa", + "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x26df0c4b1db060258d652d48eb7f99d14377451c7b8cf1ca965255e24ccc13ad", @@ -2692,7 +6080,7 @@ }, "039-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(3, 1)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2725,7 +6113,77 @@ { "rlp": "0xf903a1f90242a0ba767c2c2e90cde86d6ae67280861153509b1874b23540dc9095dd07f8c8f23da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa002429286eb574e0b2a52afa14c942d255ad1d25578aeb306e8b2df5293681ebfa03e6efb03c87131b8c8563c972bb9916c3c3a7c84383adb351b8bbfb7a07f1c44a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183080000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90157b8cb03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccc0c0", "expectException": "insufficient account balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xba767c2c2e90cde86d6ae67280861153509b1874b23540dc9095dd07f8c8f23d", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x02429286eb574e0b2a52afa14c942d255ad1d25578aeb306e8b2df5293681ebf", + "transactionsTrie": "0x3e6efb03c87131b8c8563c972bb9916c3c3a7c84383adb351b8bbfb7a07f1c44", + "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x5208", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x080000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa5384be862ef5231fea9c11f6766a96a67fbc6ad7fc8ebd3c9ea910398ab6216" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x01", + "r": "0xfa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257", + "s": "0x7c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa", + "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xba767c2c2e90cde86d6ae67280861153509b1874b23540dc9095dd07f8c8f23d", @@ -2761,7 +6219,7 @@ }, "040-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(4, 1)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2794,7 +6252,78 @@ { "rlp": "0xf903c2f90242a041c831748de94587dd640f864c4b0c7dd73f4824cbe28ea32e7c0edfe3e605b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa002429286eb574e0b2a52afa14c942d255ad1d25578aeb306e8b2df5293681ebfa0523fba1069412183cdf7618a145ad96c5dcf406cea02900ab33999b31820ea0aa0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90178b8ec03f8e9018080078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a05c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354a038db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccc0c0", "expectException": "insufficient account balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x41c831748de94587dd640f864c4b0c7dd73f4824cbe28ea32e7c0edfe3e605b2", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x02429286eb574e0b2a52afa14c942d255ad1d25578aeb306e8b2df5293681ebf", + "transactionsTrie": "0x523fba1069412183cdf7618a145ad96c5dcf406cea02900ab33999b31820ea0a", + "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x5208", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0a0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa01704061fff866138689862e075cced74729f3611e8566b4af81e0469b620c0" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003" + ], + "v": "0x01", + "r": "0x5c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354", + "s": "0x38db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa", + "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x41c831748de94587dd640f864c4b0c7dd73f4824cbe28ea32e7c0edfe3e605b2", @@ -2830,7 +6359,7 @@ }, "041-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(5, 1)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2863,7 +6392,79 @@ { "rlp": "0xf903e5f90242a02e4f1af286113c250abda7895eb807583cb906b59aff8e59e35d19c23f624de6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa002429286eb574e0b2a52afa14c942d255ad1d25578aeb306e8b2df5293681ebfa0c3f41631a2bc7d2b233f00f8c5b22a6a37540d6097832ab33f8ab7a1dd1d1997a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9019bb9010e03f9010a018080078252089400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000480a05b5b2b349f42d7b29873999b615a746b86b25832b74a4e443e34fa9222e3de16a033a55d0dc9ab01945ab29789a6c93b98541724dd932467aed99cc92bc5437c84b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccc0c0", "expectException": "insufficient account balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x2e4f1af286113c250abda7895eb807583cb906b59aff8e59e35d19c23f624de6", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x02429286eb574e0b2a52afa14c942d255ad1d25578aeb306e8b2df5293681ebf", + "transactionsTrie": "0xc3f41631a2bc7d2b233f00f8c5b22a6a37540d6097832ab33f8ab7a1dd1d1997", + "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x5208", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0c0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x0fb4973d170670ceaa6e9971ec2b69823746a834da66508d904ee900c952d0b6" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003", + "0x0100000000000000000000000000000000000000000000000000000000000004" + ], + "v": "0x00", + "r": "0x5b5b2b349f42d7b29873999b615a746b86b25832b74a4e443e34fa9222e3de16", + "s": "0x33a55d0dc9ab01945ab29789a6c93b98541724dd932467aed99cc92bc5437c84", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa", + "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x2e4f1af286113c250abda7895eb807583cb906b59aff8e59e35d19c23f624de6", @@ -2899,7 +6500,7 @@ }, "042-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(3, 2)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2932,7 +6533,78 @@ { "rlp": "0xf903c3f90242a041c831748de94587dd640f864c4b0c7dd73f4824cbe28ea32e7c0edfe3e605b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0506e57b8046ce66151e13fd567fbc87d03cffddbe43b0de68959827e99ae3be1a03e6efb03c87131b8c8563c972bb9916c3c3a7c84383adb351b8bbfb7a07f1c44a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90179b8cb03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6c0c0", "expectException": "insufficient account balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x41c831748de94587dd640f864c4b0c7dd73f4824cbe28ea32e7c0edfe3e605b2", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x506e57b8046ce66151e13fd567fbc87d03cffddbe43b0de68959827e99ae3be1", + "transactionsTrie": "0x3e6efb03c87131b8c8563c972bb9916c3c3a7c84383adb351b8bbfb7a07f1c44", + "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x5208", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0a0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xbf0c6df98618cf90b279de8b6aa957eec8773add12f693b3982d2a6b60cfaef4" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x01", + "r": "0xfa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257", + "s": "0x7c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0xc2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6", + "s": "0x584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x41c831748de94587dd640f864c4b0c7dd73f4824cbe28ea32e7c0edfe3e605b2", @@ -2968,7 +6640,7 @@ }, "043-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(4, 2)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -3001,7 +6673,79 @@ { "rlp": "0xf903e4f90242a02e4f1af286113c250abda7895eb807583cb906b59aff8e59e35d19c23f624de6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0506e57b8046ce66151e13fd567fbc87d03cffddbe43b0de68959827e99ae3be1a0523fba1069412183cdf7618a145ad96c5dcf406cea02900ab33999b31820ea0aa0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9019ab8ec03f8e9018080078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a05c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354a038db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6c0c0", "expectException": "insufficient account balance", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x2e4f1af286113c250abda7895eb807583cb906b59aff8e59e35d19c23f624de6", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x506e57b8046ce66151e13fd567fbc87d03cffddbe43b0de68959827e99ae3be1", + "transactionsTrie": "0x523fba1069412183cdf7618a145ad96c5dcf406cea02900ab33999b31820ea0a", + "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x5208", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0c0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xaa6b1b72f2b8ccbd103aa318be057c4370772783df4d7448f3a361e9b2f0a0a9" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003" + ], + "v": "0x01", + "r": "0x5c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354", + "s": "0x38db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0xc2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6", + "s": "0x584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x2e4f1af286113c250abda7895eb807583cb906b59aff8e59e35d19c23f624de6", diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/invalid_blob_hash_versioning.json b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/invalid_blob_hash_versioning.json index b999c55cbd7..95d315ca055 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/invalid_blob_hash_versioning.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/invalid_blob_hash_versioning.json @@ -1,7 +1,7 @@ { "000-fork=Cancun--single_tx_single_blob": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -34,7 +34,55 @@ { "rlp": "0xf902d1f90240a07832176e4fd6720837c84e01c215eb3492bfec0d85371f492b49272f29aa5444a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e28ed2bcf4819adfa5b691548f1a3921587ff9c5dbe995d533acdebe5059ae84a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0000000000000000000000000000000000000000000000000000000000000000180a054d676b559ce3000fa7aa0fe1dbd9160185b458af14ee83a299c5cb58207f81ea02bab9b72e3f10f40297c80367c39c76b3454036728309967bc4126d41447374cc0c0", "expectException": "invalid blob versioned hash", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x7832176e4fd6720837c84e01c215eb3492bfec0d85371f492b49272f29aa5444", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xe28ed2bcf4819adfa5b691548f1a3921587ff9c5dbe995d533acdebe5059ae84", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xd5f6715b4c9cea0679245e360b7ab5e747583b60dd76ad240c82cd8f9944cfe2" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0000000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0x54d676b559ce3000fa7aa0fe1dbd9160185b458af14ee83a299c5cb58207f81e", + "s": "0x2bab9b72e3f10f40297c80367c39c76b3454036728309967bc4126d41447374c", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x7832176e4fd6720837c84e01c215eb3492bfec0d85371f492b49272f29aa5444", @@ -70,7 +118,7 @@ }, "001-fork=Cancun--single_tx_multiple_blobs": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -103,7 +151,56 @@ { "rlp": "0xf902f3f90240a07aa6303b86a9e819c94c97288f6de093125a4b6fb31201ed47215ec946b400bea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c0b8918c82992c6db0b8a22aabdc8627d4bc27bb784774a0e08f97a1fc5b2e8aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183040000830e0000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000101a0977f1a8278d0362a82fedbab8d21b1ababc5f892a11e2138565cc27fc621ee0aa03a879a894a96d346128af86b1aecf573454d60426c1225310a9ce8fddec23206c0c0", "expectException": "invalid blob versioned hash", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x7aa6303b86a9e819c94c97288f6de093125a4b6fb31201ed47215ec946b400be", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xc0b8918c82992c6db0b8a22aabdc8627d4bc27bb784774a0e08f97a1fc5b2e8a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x040000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x0c809f39262684b9e61798d5e1cd060cc47f0e8c7cecb44df89291364de3d877" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x01", + "r": "0x977f1a8278d0362a82fedbab8d21b1ababc5f892a11e2138565cc27fc621ee0a", + "s": "0x3a879a894a96d346128af86b1aecf573454d60426c1225310a9ce8fddec23206", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x7aa6303b86a9e819c94c97288f6de093125a4b6fb31201ed47215ec946b400be", @@ -139,7 +236,7 @@ }, "002-fork=Cancun--single_tx_multiple_blobs_single_bad_hash_1": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -172,7 +269,56 @@ { "rlp": "0xf902f3f90240a07aa6303b86a9e819c94c97288f6de093125a4b6fb31201ed47215ec946b400bea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c0b8918c82992c6db0b8a22aabdc8627d4bc27bb784774a0e08f97a1fc5b2e8aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183040000830e0000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000000000000000000000000000000000000000000280a0cc726a3a180188c950b5cfc5088aa2f970ffeb86eca40b51dea070ceccd8c136a015bc845cebc4095a1628cc7e0853a8cf6ab9591e926ce2235dccd2525fa8d0f2c0c0", "expectException": "invalid blob versioned hash", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x7aa6303b86a9e819c94c97288f6de093125a4b6fb31201ed47215ec946b400be", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xc0b8918c82992c6db0b8a22aabdc8627d4bc27bb784774a0e08f97a1fc5b2e8a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x040000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x0c809f39262684b9e61798d5e1cd060cc47f0e8c7cecb44df89291364de3d877" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x00", + "r": "0xcc726a3a180188c950b5cfc5088aa2f970ffeb86eca40b51dea070ceccd8c136", + "s": "0x15bc845cebc4095a1628cc7e0853a8cf6ab9591e926ce2235dccd2525fa8d0f2", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x7aa6303b86a9e819c94c97288f6de093125a4b6fb31201ed47215ec946b400be", @@ -208,7 +354,7 @@ }, "003-fork=Cancun--single_tx_multiple_blobs_single_bad_hash_2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -241,7 +387,56 @@ { "rlp": "0xf902f3f90240a07aa6303b86a9e819c94c97288f6de093125a4b6fb31201ed47215ec946b400bea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c0b8918c82992c6db0b8a22aabdc8627d4bc27bb784774a0e08f97a1fc5b2e8aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183040000830e0000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00000000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000280a0629eabda9d4828669a0b08bb7c43c8b29b4aaaacf740b92e1806f17a9ed20313a01ce4f18d384b44aaf29b3e2776c322ae71e19e3d58e1dc8556373b2853a7f633c0c0", "expectException": "invalid blob versioned hash", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x7aa6303b86a9e819c94c97288f6de093125a4b6fb31201ed47215ec946b400be", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xc0b8918c82992c6db0b8a22aabdc8627d4bc27bb784774a0e08f97a1fc5b2e8a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x040000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x0c809f39262684b9e61798d5e1cd060cc47f0e8c7cecb44df89291364de3d877" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x00", + "r": "0x629eabda9d4828669a0b08bb7c43c8b29b4aaaacf740b92e1806f17a9ed20313", + "s": "0x1ce4f18d384b44aaf29b3e2776c322ae71e19e3d58e1dc8556373b2853a7f633", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x7aa6303b86a9e819c94c97288f6de093125a4b6fb31201ed47215ec946b400be", @@ -277,7 +472,7 @@ }, "004-fork=Cancun--multiple_txs_single_blob": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -310,7 +505,75 @@ { "rlp": "0xf9035ef90242a025fbef7ac7a23074b8d4d1c57b0b24aa6cf149fdf725342252a60a14fe558565a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03cc964d95a7581579147c29e0838092ef15297cfecb743f03caa05a7985d28c4a09f6951c1601fe05888475895d658a77e94664b5308eb0262ccfcb05f073bbb27a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183040000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90114b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000101a0e3706044f70bc05c223affc4f7d838905a072dedfa44e895feaa35fc1b2a8455a00b6a2702b0867811c0caf624bee67e0a0c719232c37859f27dd3bd56f6297a67b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0000000000000000000000000000000000000000000000000000000000000000201a06ab8e4a2d375c531cdfc527a2a5a84590c08757d921b101aa70161e369951fd4a0154500632bf683a6cb721c8a47e9ee6918ffd464ce91a75b8ff71ea25212aed5c0c0", "expectException": "invalid blob versioned hash", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x25fbef7ac7a23074b8d4d1c57b0b24aa6cf149fdf725342252a60a14fe558565", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x3cc964d95a7581579147c29e0838092ef15297cfecb743f03caa05a7985d28c4", + "transactionsTrie": "0x9f6951c1601fe05888475895d658a77e94664b5308eb0262ccfcb05f073bbb27", + "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x5208", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x040000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe4914ece17b56055e8c9fc3a5f3b4c8c67113dd4d238f60d58dfbadd6d9c9c7c" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x01", + "r": "0xe3706044f70bc05c223affc4f7d838905a072dedfa44e895feaa35fc1b2a8455", + "s": "0x0b6a2702b0867811c0caf624bee67e0a0c719232c37859f27dd3bd56f6297a67", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0000000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x01", + "r": "0x6ab8e4a2d375c531cdfc527a2a5a84590c08757d921b101aa70161e369951fd4", + "s": "0x154500632bf683a6cb721c8a47e9ee6918ffd464ce91a75b8ff71ea25212aed5", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x25fbef7ac7a23074b8d4d1c57b0b24aa6cf149fdf725342252a60a14fe558565", @@ -346,7 +609,7 @@ }, "005-fork=Cancun--multiple_txs_multiple_blobs": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -379,7 +642,76 @@ { "rlp": "0xf90380f90242a0d40b69628f61ffb9b6bf30b87fc776ef6464b83812b60f6fd362dc3df5ea5f31a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a98d333282dad9207b578e0164c0e84a136bb2bd1427a5669255a38bc778c67aa09f6951c1601fe05888475895d658a77e94664b5308eb0262ccfcb05f073bbb27a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183060000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90136b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000101a0e3706044f70bc05c223affc4f7d838905a072dedfa44e895feaa35fc1b2a8455a00b6a2702b0867811c0caf624bee67e0a0c719232c37859f27dd3bd56f6297a67b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000000000000000000000000000000000000000000280a064a81f877afe2a9f173109c60345367b472eec99ee44a12b8b4f06e71f83f7a2a028409e9af4e70f3ce5cabc28cd0dd47e2d1dfbef31bdfa49045514d736f193aec0c0", "expectException": "invalid blob versioned hash", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xd40b69628f61ffb9b6bf30b87fc776ef6464b83812b60f6fd362dc3df5ea5f31", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xa98d333282dad9207b578e0164c0e84a136bb2bd1427a5669255a38bc778c67a", + "transactionsTrie": "0x9f6951c1601fe05888475895d658a77e94664b5308eb0262ccfcb05f073bbb27", + "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x5208", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x060000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x4dea41029579e8fd3bc62bdaac395a6045a91dad3a68909947aece60b190907b" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x01", + "r": "0xe3706044f70bc05c223affc4f7d838905a072dedfa44e895feaa35fc1b2a8455", + "s": "0x0b6a2702b0867811c0caf624bee67e0a0c719232c37859f27dd3bd56f6297a67", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x00", + "r": "0x64a81f877afe2a9f173109c60345367b472eec99ee44a12b8b4f06e71f83f7a2", + "s": "0x28409e9af4e70f3ce5cabc28cd0dd47e2d1dfbef31bdfa49045514d736f193ae", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xd40b69628f61ffb9b6bf30b87fc776ef6464b83812b60f6fd362dc3df5ea5f31", @@ -415,7 +747,7 @@ }, "006-fork=Cancun--multiple_txs_multiple_blobs_single_bad_hash_1": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -448,7 +780,76 @@ { "rlp": "0xf90380f90242a0d40b69628f61ffb9b6bf30b87fc776ef6464b83812b60f6fd362dc3df5ea5f31a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a98d333282dad9207b578e0164c0e84a136bb2bd1427a5669255a38bc778c67aa09f6951c1601fe05888475895d658a77e94664b5308eb0262ccfcb05f073bbb27a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183060000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90136b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000101a0e3706044f70bc05c223affc4f7d838905a072dedfa44e895feaa35fc1b2a8455a00b6a2702b0867811c0caf624bee67e0a0c719232c37859f27dd3bd56f6297a67b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00000000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000380a047f7ec33c220cfcabca802abe228dadc3e11e4d89d6ff1ba472e628a50ed3590a065ed1eb96a058c597f698383c1cfbcb2a3faf90577f640fc1b608c75940602ddc0c0", "expectException": "invalid blob versioned hash", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xd40b69628f61ffb9b6bf30b87fc776ef6464b83812b60f6fd362dc3df5ea5f31", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xa98d333282dad9207b578e0164c0e84a136bb2bd1427a5669255a38bc778c67a", + "transactionsTrie": "0x9f6951c1601fe05888475895d658a77e94664b5308eb0262ccfcb05f073bbb27", + "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x5208", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x060000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x4dea41029579e8fd3bc62bdaac395a6045a91dad3a68909947aece60b190907b" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x01", + "r": "0xe3706044f70bc05c223affc4f7d838905a072dedfa44e895feaa35fc1b2a8455", + "s": "0x0b6a2702b0867811c0caf624bee67e0a0c719232c37859f27dd3bd56f6297a67", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0000000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003" + ], + "v": "0x00", + "r": "0x47f7ec33c220cfcabca802abe228dadc3e11e4d89d6ff1ba472e628a50ed3590", + "s": "0x65ed1eb96a058c597f698383c1cfbcb2a3faf90577f640fc1b608c75940602dd", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xd40b69628f61ffb9b6bf30b87fc776ef6464b83812b60f6fd362dc3df5ea5f31", @@ -484,7 +885,7 @@ }, "007-fork=Cancun--multiple_txs_multiple_blobs_single_bad_hash_2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -517,7 +918,95 @@ { "rlp": "0xf903e8f90242a07947be75a3d6599ffe386405f119685e2625a10c27cbdd913a8f3a8ecc34d643a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa028debd21503f6c8a4e99cc2068f565904f55205cab98d6a3fbd90651f4aa380aa06cf1a00219adf3c2d8cceb030dda791033e5920bab56bffd447dff1ce177638ca010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183060000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9019eb88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000101a0e3706044f70bc05c223affc4f7d838905a072dedfa44e895feaa35fc1b2a8455a00b6a2702b0867811c0caf624bee67e0a0c719232c37859f27dd3bd56f6297a67b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000280a02ecda544700f93d637036795d50c0528dbef432f4ac1d3e661aaa657cbfb9079a04932b24345e17152485902c78ccd5feadb2e90ac0ac992ab6fc334c0ce9a01b0b88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0000000000000000000000000000000000000000000000000000000000000000380a04a102a429682252f7fa7ed26237bc31520c19535b0fee2fa0261807903986976a0733f71dc90c6a698372d4bc61f404dee06d83a7422dca3b3735753d03faa4dc3c0c0", "expectException": "invalid blob versioned hash", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x7947be75a3d6599ffe386405f119685e2625a10c27cbdd913a8f3a8ecc34d643", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x28debd21503f6c8a4e99cc2068f565904f55205cab98d6a3fbd90651f4aa380a", + "transactionsTrie": "0x6cf1a00219adf3c2d8cceb030dda791033e5920bab56bffd447dff1ce177638c", + "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa410", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x060000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x686dd251ffd620f4991fe04e19cf1688ea448f8fbd5e9772e4ff1df4aef335e2" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x01", + "r": "0xe3706044f70bc05c223affc4f7d838905a072dedfa44e895feaa35fc1b2a8455", + "s": "0x0b6a2702b0867811c0caf624bee67e0a0c719232c37859f27dd3bd56f6297a67", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x00", + "r": "0x2ecda544700f93d637036795d50c0528dbef432f4ac1d3e661aaa657cbfb9079", + "s": "0x4932b24345e17152485902c78ccd5feadb2e90ac0ac992ab6fc334c0ce9a01b0", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0000000000000000000000000000000000000000000000000000000000000003" + ], + "v": "0x00", + "r": "0x4a102a429682252f7fa7ed26237bc31520c19535b0fee2fa0261807903986976", + "s": "0x733f71dc90c6a698372d4bc61f404dee06d83a7422dca3b3735753d03faa4dc3", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x7947be75a3d6599ffe386405f119685e2625a10c27cbdd913a8f3a8ecc34d643", diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/invalid_block_blob_count.json b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/invalid_block_blob_count.json index 5bc3ba59f87..185555ae560 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/invalid_block_blob_count.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/invalid_block_blob_count.json @@ -1,7 +1,7 @@ { "000-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(1, 1, 1, 1, 1, 1, 1)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -34,7 +34,175 @@ { "rlp": "0xf90611f90243a0142abad1cb1f9c8a277d59f52cc29560472cf7bf4c46e12bfca8cf6b728acee2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01160bf706d3b06190fa33e896c44f6344158bacefadc0d6faa47ae69fbb424dea02579c29ab652de198ccbb3955047a953123c8d13e8728b18fde1b6894f883120a0b68b3b40b117981014523f7d13c54838507b148d7b74399ca5bdebd0b577f080b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083023e380c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f903c6b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdeb88803f885010480078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7da06989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139b88803f885010580078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a07efec980ef3b40c74b2de3dee9e9f081b9b4ae4ae1732d64ba0e9553aaf08dc4a0464e6720d2d74b4d68f37f339608278be3a16802b61a46dc9895b898a70939eab88803f885010680078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a02145ded5025c6144b8f5ae446db8b617c5ff760eb7c17fa439dedb576ada3ab3a03a15f5307cc6a12f853f6f3732a1d2598d117a387256ab0f8f49d9431caf43bfc0c0", "expectException": "invalid_blob_count", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x142abad1cb1f9c8a277d59f52cc29560472cf7bf4c46e12bfca8cf6b728acee2", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x1160bf706d3b06190fa33e896c44f6344158bacefadc0d6faa47ae69fbb424de", + "transactionsTrie": "0x2579c29ab652de198ccbb3955047a953123c8d13e8728b18fde1b6894f883120", + "receiptTrie": "0xb68b3b40b117981014523f7d13c54838507b148d7b74399ca5bdebd0b577f080", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x023e38", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0e0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xb7697b10784aabceb4b673ede99805ee4a5477fc9b5b6ff236b3b1d7f07bb6a0" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", + "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa", + "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1", + "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x03", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0x5d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78", + "s": "0x7054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x04", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0x903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7d", + "s": "0x6989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x05", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0x7efec980ef3b40c74b2de3dee9e9f081b9b4ae4ae1732d64ba0e9553aaf08dc4", + "s": "0x464e6720d2d74b4d68f37f339608278be3a16802b61a46dc9895b898a70939ea", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x06", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0x2145ded5025c6144b8f5ae446db8b617c5ff760eb7c17fa439dedb576ada3ab3", + "s": "0x3a15f5307cc6a12f853f6f3732a1d2598d117a387256ab0f8f49d9431caf43bf", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x142abad1cb1f9c8a277d59f52cc29560472cf7bf4c46e12bfca8cf6b728acee2", @@ -70,7 +238,7 @@ }, "001-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(1, 1, 1, 1, 1, 2)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -103,7 +271,156 @@ { "rlp": "0xf905a9f90243a0b37081858e0f45f6b9db73b2106e6ef17fea6eb2248ba7abc0b751408f6132b1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00abe6bebf48ea5da636cae19def078a0815fc749e5cda8bb2933bba001fdb226a066ec7d1f1b72c0f5feaba91fa153d37cbd4546fa5cbd873935058046433fda93a0c88bbb6ffab5658b295a44086ed7e77d4526e07e4025496e68a55042b24c81beb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301ec300c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9035eb88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdeb88803f885010480078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7da06989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139b8aa03f8a7010580078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a077be0868c3fbf1d197b11d641d9f12c3594f6c9c629ae8ff2499910fe9654a12a02c8935d89a4446614b3775dff87e286ae393905df3526c142b0333368b3c1b30c0c0", "expectException": "invalid_blob_count", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xb37081858e0f45f6b9db73b2106e6ef17fea6eb2248ba7abc0b751408f6132b1", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0abe6bebf48ea5da636cae19def078a0815fc749e5cda8bb2933bba001fdb226", + "transactionsTrie": "0x66ec7d1f1b72c0f5feaba91fa153d37cbd4546fa5cbd873935058046433fda93", + "receiptTrie": "0xc88bbb6ffab5658b295a44086ed7e77d4526e07e4025496e68a55042b24c81be", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01ec30", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0e0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x1924e77987d633fea1aa732a2b4dffe16daf613cd204f37821f954088e76bd2c" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", + "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa", + "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1", + "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x03", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0x5d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78", + "s": "0x7054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x04", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0x903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7d", + "s": "0x6989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x05", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0x77be0868c3fbf1d197b11d641d9f12c3594f6c9c629ae8ff2499910fe9654a12", + "s": "0x2c8935d89a4446614b3775dff87e286ae393905df3526c142b0333368b3c1b30", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xb37081858e0f45f6b9db73b2106e6ef17fea6eb2248ba7abc0b751408f6132b1", @@ -139,7 +456,7 @@ }, "002-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(1, 1, 1, 1, 3)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -172,7 +489,137 @@ { "rlp": "0xf90540f90243a0a99505076b977d19b10f2d39bef3f9d5b8d9cca04597cf378d3fa50006f03492a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09406ef36be4f44153414bf7d584e2d66e9610f4246a41502503e92f8b42165bda0e24fc5bc5b28819e28da0d847992b6880bbacff1b2b3e4c7043ccdd5addb0e6da00fb518c7915e8be37f2aa095af144d5e9a121e4dc65b20bbe109b9a001da1cb0b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083019a280c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f902f5b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdeb8cb03f8c8010480078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a056368cf345ba0e910db98bd81fc49972dc5808faec334faf9e2a108747678c04a00222926688f2b46101e29f204d831c23383264df34ddc055f31f1e9bfc2d1953c0c0", "expectException": "invalid_blob_count", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xa99505076b977d19b10f2d39bef3f9d5b8d9cca04597cf378d3fa50006f03492", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x9406ef36be4f44153414bf7d584e2d66e9610f4246a41502503e92f8b42165bd", + "transactionsTrie": "0xe24fc5bc5b28819e28da0d847992b6880bbacff1b2b3e4c7043ccdd5addb0e6d", + "receiptTrie": "0x0fb518c7915e8be37f2aa095af144d5e9a121e4dc65b20bbe109b9a001da1cb0", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x019a28", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0e0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x45baae94310faa78a4b97f5194ee78e0b865f72b0dbc512dac45f95d6d18c7e5" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", + "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa", + "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1", + "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x03", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0x5d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78", + "s": "0x7054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x04", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x01", + "r": "0x56368cf345ba0e910db98bd81fc49972dc5808faec334faf9e2a108747678c04", + "s": "0x0222926688f2b46101e29f204d831c23383264df34ddc055f31f1e9bfc2d1953", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xa99505076b977d19b10f2d39bef3f9d5b8d9cca04597cf378d3fa50006f03492", @@ -208,7 +655,7 @@ }, "003-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(1, 1, 1, 2, 2)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -241,7 +688,137 @@ { "rlp": "0xf90541f90243a0a99505076b977d19b10f2d39bef3f9d5b8d9cca04597cf378d3fa50006f03492a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09406ef36be4f44153414bf7d584e2d66e9610f4246a41502503e92f8b42165bda03d9aba437ed8d586f33d3f0675b2f8b8353cf9c5e953cd3d8b436c5e4c6ec9ffa00fb518c7915e8be37f2aa095af144d5e9a121e4dc65b20bbe109b9a001da1cb0b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083019a280c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f902f6b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b8aa03f8a7010380078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a06d029dd5fbca2185367132cb8c6f2b55eb2e040ff2ef329ec5862c01282eac2fa03d8f5297c5e84d8bac8ae590d1c8fb939473cbcdc0db52310a2108b9b47d480eb8aa03f8a7010480078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a0f767b7e3c41873f941552e15fd67947c18ed7139f03abbe188762e2b69b9dc8ca07f92eace9c234cc6b1353e9f6808165c5950f43ba226d3154b26a7c1b34a2d6bc0c0", "expectException": "invalid_blob_count", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xa99505076b977d19b10f2d39bef3f9d5b8d9cca04597cf378d3fa50006f03492", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x9406ef36be4f44153414bf7d584e2d66e9610f4246a41502503e92f8b42165bd", + "transactionsTrie": "0x3d9aba437ed8d586f33d3f0675b2f8b8353cf9c5e953cd3d8b436c5e4c6ec9ff", + "receiptTrie": "0x0fb518c7915e8be37f2aa095af144d5e9a121e4dc65b20bbe109b9a001da1cb0", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x019a28", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0e0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x7f47d195494d15f23e7d11a834ad7f807c15611fa829059f9527ce26eae2efa8" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", + "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa", + "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1", + "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x03", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x01", + "r": "0x6d029dd5fbca2185367132cb8c6f2b55eb2e040ff2ef329ec5862c01282eac2f", + "s": "0x3d8f5297c5e84d8bac8ae590d1c8fb939473cbcdc0db52310a2108b9b47d480e", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x04", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x01", + "r": "0xf767b7e3c41873f941552e15fd67947c18ed7139f03abbe188762e2b69b9dc8c", + "s": "0x7f92eace9c234cc6b1353e9f6808165c5950f43ba226d3154b26a7c1b34a2d6b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xa99505076b977d19b10f2d39bef3f9d5b8d9cca04597cf378d3fa50006f03492", @@ -277,7 +854,7 @@ }, "004-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(1, 1, 1, 4)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -310,7 +887,118 @@ { "rlp": "0xf904d7f90243a0f290d8b133d1625a37756795c42509a96976a4a88ea2b3b807761f6af01be345a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cabca10654295a18386e33b3c72324313ae0bb5374dec4365e37234600f23557a0e77162b50c1197db32a578c34e5e387716ecdabfb7409fa1239534fd9d6f37caa080a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830148200c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9028cb88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b8ec03f8e9010380078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000380a0e8fb762b316adfc587fdaa98ee0e91e9f4a6878aff7e20ab0509677631e24e73a012705f2e3a2ae426d73d76991fd703eb4ead73457c5809816e791ae11e72338bc0c0", "expectException": "invalid_blob_count", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xf290d8b133d1625a37756795c42509a96976a4a88ea2b3b807761f6af01be345", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xcabca10654295a18386e33b3c72324313ae0bb5374dec4365e37234600f23557", + "transactionsTrie": "0xe77162b50c1197db32a578c34e5e387716ecdabfb7409fa1239534fd9d6f37ca", + "receiptTrie": "0x80a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x014820", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0e0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x7f360aed78cf14817a48f88d6c65c1f4160957d6d83b94ecbfe77a08306683b7" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", + "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa", + "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1", + "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x03", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003" + ], + "v": "0x00", + "r": "0xe8fb762b316adfc587fdaa98ee0e91e9f4a6878aff7e20ab0509677631e24e73", + "s": "0x12705f2e3a2ae426d73d76991fd703eb4ead73457c5809816e791ae11e72338b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xf290d8b133d1625a37756795c42509a96976a4a88ea2b3b807761f6af01be345", @@ -346,7 +1034,7 @@ }, "005-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(1, 1, 2, 3)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -379,7 +1067,118 @@ { "rlp": "0xf904d8f90243a0f290d8b133d1625a37756795c42509a96976a4a88ea2b3b807761f6af01be345a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cabca10654295a18386e33b3c72324313ae0bb5374dec4365e37234600f23557a0a24e376fbaa6be769bd94846d02837640365c0899d967d71fdf250a713d6bb96a080a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830148200c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9028db88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb8aa03f8a7010280078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a0319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635ea01870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218befb8cb03f8c8010380078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0f1f4b9be64029d9407c88d2a775cb70706e6045d3855ffa0e6a52f416459e96ea038cf645bc6ff2e307b1fcb647576cef0ad491cc75ddd8e2c1c065be1bac2f2bcc0c0", "expectException": "invalid_blob_count", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xf290d8b133d1625a37756795c42509a96976a4a88ea2b3b807761f6af01be345", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xcabca10654295a18386e33b3c72324313ae0bb5374dec4365e37234600f23557", + "transactionsTrie": "0xa24e376fbaa6be769bd94846d02837640365c0899d967d71fdf250a713d6bb96", + "receiptTrie": "0x80a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x014820", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0e0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x9346a9ac028916affa9024bb32947d295daee9215d23ab18679d01744a7dadca" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", + "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa", + "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x01", + "r": "0x319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635e", + "s": "0x1870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218bef", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x03", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x01", + "r": "0xf1f4b9be64029d9407c88d2a775cb70706e6045d3855ffa0e6a52f416459e96e", + "s": "0x38cf645bc6ff2e307b1fcb647576cef0ad491cc75ddd8e2c1c065be1bac2f2bc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xf290d8b133d1625a37756795c42509a96976a4a88ea2b3b807761f6af01be345", @@ -415,7 +1214,7 @@ }, "006-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(1, 2, 2, 2)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -448,7 +1247,118 @@ { "rlp": "0xf904d9f90243a0f290d8b133d1625a37756795c42509a96976a4a88ea2b3b807761f6af01be345a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cabca10654295a18386e33b3c72324313ae0bb5374dec4365e37234600f23557a0467a19dbbcaf37be5da721ae2b80ad27a098f1f7e9c48ed6cb7aef9847721c13a080a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830148200c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9028eb88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6b8aa03f8a7010280078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a0319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635ea01870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218befb8aa03f8a7010380078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a06d029dd5fbca2185367132cb8c6f2b55eb2e040ff2ef329ec5862c01282eac2fa03d8f5297c5e84d8bac8ae590d1c8fb939473cbcdc0db52310a2108b9b47d480ec0c0", "expectException": "invalid_blob_count", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xf290d8b133d1625a37756795c42509a96976a4a88ea2b3b807761f6af01be345", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xcabca10654295a18386e33b3c72324313ae0bb5374dec4365e37234600f23557", + "transactionsTrie": "0x467a19dbbcaf37be5da721ae2b80ad27a098f1f7e9c48ed6cb7aef9847721c13", + "receiptTrie": "0x80a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x014820", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0e0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xf5b4e350462073cd21520d8d57f61fed7c4c74d7988414a4eb52e1444b36a26e" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", + "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0xc2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6", + "s": "0x584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x01", + "r": "0x319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635e", + "s": "0x1870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218bef", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x03", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x01", + "r": "0x6d029dd5fbca2185367132cb8c6f2b55eb2e040ff2ef329ec5862c01282eac2f", + "s": "0x3d8f5297c5e84d8bac8ae590d1c8fb939473cbcdc0db52310a2108b9b47d480e", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xf290d8b133d1625a37756795c42509a96976a4a88ea2b3b807761f6af01be345", @@ -484,7 +1394,7 @@ }, "007-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(1, 1, 5)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -517,7 +1427,99 @@ { "rlp": "0xf9046ff90242a004ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e0b7e3d3f3a9c7d11829923d808acac48b451644534b1d7a450ef60166f7b946a0b8d22a2a3107e5e6d5975cca19f23ddd8f6329ae7dbee6c6535ec1e2fb396132a09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90225b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb9010e03f9010a010280078252089400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a042497dc2b34e5262095e63ed752dda63773a7cdd6c8937c43e0b7f4ac1d911a1a042592ba737e913c7eae6fdc59ae5f5e0e6efbf7c0d4e19b6eee7c9c89488fa68c0c0", "expectException": "invalid_blob_count", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x04ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xe0b7e3d3f3a9c7d11829923d808acac48b451644534b1d7a450ef60166f7b946", + "transactionsTrie": "0xb8d22a2a3107e5e6d5975cca19f23ddd8f6329ae7dbee6c6535ec1e2fb396132", + "receiptTrie": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xf618", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0e0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x21b669ee8e3031bbc1e49ad46bd6471f3d6269b3ed87b9599993e61a8459ce68" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", + "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa", + "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003", + "0x0100000000000000000000000000000000000000000000000000000000000004" + ], + "v": "0x01", + "r": "0x42497dc2b34e5262095e63ed752dda63773a7cdd6c8937c43e0b7f4ac1d911a1", + "s": "0x42592ba737e913c7eae6fdc59ae5f5e0e6efbf7c0d4e19b6eee7c9c89488fa68", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x04ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79", @@ -553,7 +1555,7 @@ }, "008-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(1, 2, 4)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -586,7 +1588,99 @@ { "rlp": "0xf9046ef90242a004ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e0b7e3d3f3a9c7d11829923d808acac48b451644534b1d7a450ef60166f7b946a0b7f1ceea08d6e5de07e1e2f7a3f65e6ad25d668d6d5a68b471b3b5e34e2a333ca09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90224b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6b8ec03f8e9010280078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a0e9476ce242f923f527e67d058a797f8e5031eb988055d5fc1e8260363eb60c71a040e6602db343c002d4322ba14cc9d62798e7148e79e7d1bb8e2e929741d24cf2c0c0", "expectException": "invalid_blob_count", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x04ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xe0b7e3d3f3a9c7d11829923d808acac48b451644534b1d7a450ef60166f7b946", + "transactionsTrie": "0xb7f1ceea08d6e5de07e1e2f7a3f65e6ad25d668d6d5a68b471b3b5e34e2a333c", + "receiptTrie": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xf618", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0e0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xef93382b8993136f8d636d168d0e8713bac9b125b3b4d148a14372961db7b0cc" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", + "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0xc2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6", + "s": "0x584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003" + ], + "v": "0x01", + "r": "0xe9476ce242f923f527e67d058a797f8e5031eb988055d5fc1e8260363eb60c71", + "s": "0x40e6602db343c002d4322ba14cc9d62798e7148e79e7d1bb8e2e929741d24cf2", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x04ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79", @@ -622,7 +1716,7 @@ }, "009-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(1, 3, 3)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -655,7 +1749,99 @@ { "rlp": "0xf9046ef90242a004ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e0b7e3d3f3a9c7d11829923d808acac48b451644534b1d7a450ef60166f7b946a094257dc9890743429640f6e5514fba57cfd0182af5c8b448c0e313f149e6fcd5a09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90224b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab8cb03f8c8010180078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a08e5455a1dfad86ef676e7deeda1aa045e8e1d0b1c62bff9a8720b8dc91de2746a05f2e35151ad3640d2724257c65cfabe33c033897ba27b10232a29be4033ac391b8cb03f8c8010280078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000280a0f745b5a72a2c990db52b13e7b7827240131b1e67ce876fcf326fa25201644f2ea027c7189e4cf388453094af696515daf8629bcf0e7f02d92dfab462fcc059312dc0c0", "expectException": "invalid_blob_count", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x04ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xe0b7e3d3f3a9c7d11829923d808acac48b451644534b1d7a450ef60166f7b946", + "transactionsTrie": "0x94257dc9890743429640f6e5514fba57cfd0182af5c8b448c0e313f149e6fcd5", + "receiptTrie": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xf618", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0e0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xef6478714649d408b55aed038bb9d6d781427a91dd4bf86d6517f6e96d07f015" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", + "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x01", + "r": "0x8e5455a1dfad86ef676e7deeda1aa045e8e1d0b1c62bff9a8720b8dc91de2746", + "s": "0x5f2e35151ad3640d2724257c65cfabe33c033897ba27b10232a29be4033ac391", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x00", + "r": "0xf745b5a72a2c990db52b13e7b7827240131b1e67ce876fcf326fa25201644f2e", + "s": "0x27c7189e4cf388453094af696515daf8629bcf0e7f02d92dfab462fcc059312d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x04ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79", @@ -691,7 +1877,7 @@ }, "010-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(2, 2, 3)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -724,7 +1910,99 @@ { "rlp": "0xf9046ff90242a004ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e0b7e3d3f3a9c7d11829923d808acac48b451644534b1d7a450ef60166f7b946a07060c3d206c3e12d56a46b46825ff36dbf3bf0d2ef50db7cb67de2a5531ee8ffa09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90225b8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6b8cb03f8c8010280078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000280a0f745b5a72a2c990db52b13e7b7827240131b1e67ce876fcf326fa25201644f2ea027c7189e4cf388453094af696515daf8629bcf0e7f02d92dfab462fcc059312dc0c0", "expectException": "invalid_blob_count", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x04ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xe0b7e3d3f3a9c7d11829923d808acac48b451644534b1d7a450ef60166f7b946", + "transactionsTrie": "0x7060c3d206c3e12d56a46b46825ff36dbf3bf0d2ef50db7cb67de2a5531ee8ff", + "receiptTrie": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xf618", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0e0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x0d931f1beb4657393db352f55882b3bd5062f8061d7ee0c6095ac89a2f0ff0e3" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0x2834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5", + "s": "0x5566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0xc2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6", + "s": "0x584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x00", + "r": "0xf745b5a72a2c990db52b13e7b7827240131b1e67ce876fcf326fa25201644f2e", + "s": "0x27c7189e4cf388453094af696515daf8629bcf0e7f02d92dfab462fcc059312d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x04ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79", @@ -760,7 +2038,7 @@ }, "011-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(1, 6)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -793,7 +2071,80 @@ { "rlp": "0xf90406f90242a04dec6cdeae5bde5a2e743bdecfd9fb58fbeff6b01d51c5ae9c274f2ab1fab413a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa087413205e068db30167044d42b0e8a4175ddd2c58c160b731875b94ba46d9479a0f3e1659ddc6a74d943d65d62d4b2bc17b534976d1f1e9cc12837dade94910dd0a010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f901bcb88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab9012f03f9012b010180078252089400000000000000000000000000000000000001000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000580a0d2fb75e16680d8885a10c4fb9b6675953150ef03b8661e2ef9099265b0c1cc1fa049f848c809e11329ddd49cceec203252d0ba9863613b1cc4d0ff066460e87366c0c0", "expectException": "invalid_blob_count", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x4dec6cdeae5bde5a2e743bdecfd9fb58fbeff6b01d51c5ae9c274f2ab1fab413", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x87413205e068db30167044d42b0e8a4175ddd2c58c160b731875b94ba46d9479", + "transactionsTrie": "0xf3e1659ddc6a74d943d65d62d4b2bc17b534976d1f1e9cc12837dade94910dd0", + "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa410", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0e0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xedc928c463032db5a125707bd7811a0d0dc1baa3e782ef6e65a5c4cb653fe4d4" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", + "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003", + "0x0100000000000000000000000000000000000000000000000000000000000004", + "0x0100000000000000000000000000000000000000000000000000000000000005" + ], + "v": "0x00", + "r": "0xd2fb75e16680d8885a10c4fb9b6675953150ef03b8661e2ef9099265b0c1cc1f", + "s": "0x49f848c809e11329ddd49cceec203252d0ba9863613b1cc4d0ff066460e87366", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x4dec6cdeae5bde5a2e743bdecfd9fb58fbeff6b01d51c5ae9c274f2ab1fab413", @@ -829,7 +2180,7 @@ }, "012-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(2, 5)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -862,7 +2213,80 @@ { "rlp": "0xf90407f90242a04dec6cdeae5bde5a2e743bdecfd9fb58fbeff6b01d51c5ae9c274f2ab1fab413a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa087413205e068db30167044d42b0e8a4175ddd2c58c160b731875b94ba46d9479a095fcf8909d577b2083b9826800534bcff34ed99c0a62ba8a76137a19ef695a13a010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f901bdb8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b9010e03f9010a010180078252089400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a03b2d2b489ff492b72d5a89673af2a2840830ead9d6cf2544e444385818f4db97a03ba1a6691a91deb8a72304e4986800f766d95f552fceb901a37c4f913f9a1f5ec0c0", "expectException": "invalid_blob_count", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x4dec6cdeae5bde5a2e743bdecfd9fb58fbeff6b01d51c5ae9c274f2ab1fab413", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x87413205e068db30167044d42b0e8a4175ddd2c58c160b731875b94ba46d9479", + "transactionsTrie": "0x95fcf8909d577b2083b9826800534bcff34ed99c0a62ba8a76137a19ef695a13", + "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa410", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0e0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe8311c8368130c0ceac6de364a80e255d5ea582f83b0f0f6ac9cba96b3b911ef" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0x2834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5", + "s": "0x5566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003", + "0x0100000000000000000000000000000000000000000000000000000000000004" + ], + "v": "0x01", + "r": "0x3b2d2b489ff492b72d5a89673af2a2840830ead9d6cf2544e444385818f4db97", + "s": "0x3ba1a6691a91deb8a72304e4986800f766d95f552fceb901a37c4f913f9a1f5e", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x4dec6cdeae5bde5a2e743bdecfd9fb58fbeff6b01d51c5ae9c274f2ab1fab413", @@ -898,7 +2322,7 @@ }, "013-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(3, 4)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -931,7 +2355,80 @@ { "rlp": "0xf90405f90242a04dec6cdeae5bde5a2e743bdecfd9fb58fbeff6b01d51c5ae9c274f2ab1fab413a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa087413205e068db30167044d42b0e8a4175ddd2c58c160b731875b94ba46d9479a0cd9bd46b0f2e318a5236d207dbd53a9ab32491fde3f09c33ae19100d31086891a010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f901bbb8cb03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299b8ec03f8e9010180078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000380a0a9f1ef3f0dcf6833817f20e660ff751b5ede0573c495c2f707ba9bd7f8d6639fa072b7268169653fa15613ecee69def2deef2562057b65bf753c23f3e480609261c0c0", "expectException": "invalid_blob_count", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x4dec6cdeae5bde5a2e743bdecfd9fb58fbeff6b01d51c5ae9c274f2ab1fab413", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x87413205e068db30167044d42b0e8a4175ddd2c58c160b731875b94ba46d9479", + "transactionsTrie": "0xcd9bd46b0f2e318a5236d207dbd53a9ab32491fde3f09c33ae19100d31086891", + "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa410", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0e0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x95ce6dcfad780cbccf15c227c5a78ad0b55bec6623617c5a5a710b0179b7797a" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x01", + "r": "0xfa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257", + "s": "0x7c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003" + ], + "v": "0x00", + "r": "0xa9f1ef3f0dcf6833817f20e660ff751b5ede0573c495c2f707ba9bd7f8d6639f", + "s": "0x72b7268169653fa15613ecee69def2deef2562057b65bf753c23f3e480609261", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x4dec6cdeae5bde5a2e743bdecfd9fb58fbeff6b01d51c5ae9c274f2ab1fab413", @@ -967,7 +2464,7 @@ }, "014-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(7,)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1000,7 +2497,61 @@ { "rlp": "0xf9039df90242a09c823f5a5fff3d59eae97c2a49a6a32d7cdf474478e97fcd6fedb97e058052d3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c4e1946638e354f510a20898a1746fc3f047c089153990ae220f41fe8e993252a0a9f9ecaf41694501fe48865981e0e02ef87ef20d265b28a026ebf2e86cf0ada9a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90153b9015003f9014c018080078252089400000000000000000000000000000000000001000180c001f8e7a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a00100000000000000000000000000000000000000000000000000000000000005a0010000000000000000000000000000000000000000000000000000000000000601a0af0a7ac2ca1a38440aff74ef5585589516aaf73984ca8ebee703f42a54dab9f6a056fc83d4ea63ef0f3b40ef86d36f887df7c46bad309dca7ceda55a2ba985f7a1c0c0", "expectException": "invalid_blob_count", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x9c823f5a5fff3d59eae97c2a49a6a32d7cdf474478e97fcd6fedb97e058052d3", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xc4e1946638e354f510a20898a1746fc3f047c089153990ae220f41fe8e993252", + "transactionsTrie": "0xa9f9ecaf41694501fe48865981e0e02ef87ef20d265b28a026ebf2e86cf0ada9", + "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x5208", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0e0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xb174770ab720577a08687ca81a12aa1c31ca5c638bd1860cd85a301043a84760" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003", + "0x0100000000000000000000000000000000000000000000000000000000000004", + "0x0100000000000000000000000000000000000000000000000000000000000005", + "0x0100000000000000000000000000000000000000000000000000000000000006" + ], + "v": "0x01", + "r": "0xaf0a7ac2ca1a38440aff74ef5585589516aaf73984ca8ebee703f42a54dab9f6", + "s": "0x56fc83d4ea63ef0f3b40ef86d36f887df7c46bad309dca7ceda55a2ba985f7a1", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x9c823f5a5fff3d59eae97c2a49a6a32d7cdf474478e97fcd6fedb97e058052d3", @@ -1036,7 +2587,7 @@ }, "015-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(2, 1, 1, 1, 1, 1)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1069,7 +2620,156 @@ { "rlp": "0xf905a9f90243a0b37081858e0f45f6b9db73b2106e6ef17fea6eb2248ba7abc0b751408f6132b1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00abe6bebf48ea5da636cae19def078a0815fc749e5cda8bb2933bba001fdb226a0900435949a013be5428acea59eda17147cb48e8fc507e453a1f251b3b0307393a0c88bbb6ffab5658b295a44086ed7e77d4526e07e4025496e68a55042b24c81beb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301ec300c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9035eb8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdeb88803f885010480078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7da06989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139b88803f885010580078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a07efec980ef3b40c74b2de3dee9e9f081b9b4ae4ae1732d64ba0e9553aaf08dc4a0464e6720d2d74b4d68f37f339608278be3a16802b61a46dc9895b898a70939eac0c0", "expectException": "invalid_blob_count", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xb37081858e0f45f6b9db73b2106e6ef17fea6eb2248ba7abc0b751408f6132b1", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0abe6bebf48ea5da636cae19def078a0815fc749e5cda8bb2933bba001fdb226", + "transactionsTrie": "0x900435949a013be5428acea59eda17147cb48e8fc507e453a1f251b3b0307393", + "receiptTrie": "0xc88bbb6ffab5658b295a44086ed7e77d4526e07e4025496e68a55042b24c81be", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01ec30", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0e0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x898e51408d09ddf7da8f82293b083ef829de927e7debcd14064f11295d5246ea" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0x2834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5", + "s": "0x5566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa", + "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1", + "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x03", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0x5d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78", + "s": "0x7054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x04", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0x903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7d", + "s": "0x6989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x05", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0x7efec980ef3b40c74b2de3dee9e9f081b9b4ae4ae1732d64ba0e9553aaf08dc4", + "s": "0x464e6720d2d74b4d68f37f339608278be3a16802b61a46dc9895b898a70939ea", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xb37081858e0f45f6b9db73b2106e6ef17fea6eb2248ba7abc0b751408f6132b1", @@ -1105,7 +2805,7 @@ }, "016-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(3, 1, 1, 1, 1)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1138,7 +2838,137 @@ { "rlp": "0xf90540f90243a0a99505076b977d19b10f2d39bef3f9d5b8d9cca04597cf378d3fa50006f03492a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09406ef36be4f44153414bf7d584e2d66e9610f4246a41502503e92f8b42165bda0344f6e30feece56c276d725150faed27a199b2e46ac573a2dffb2dc3bff5311aa00fb518c7915e8be37f2aa095af144d5e9a121e4dc65b20bbe109b9a001da1cb0b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083019a280c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f902f5b8cb03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdeb88803f885010480078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7da06989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139c0c0", "expectException": "invalid_blob_count", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xa99505076b977d19b10f2d39bef3f9d5b8d9cca04597cf378d3fa50006f03492", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x9406ef36be4f44153414bf7d584e2d66e9610f4246a41502503e92f8b42165bd", + "transactionsTrie": "0x344f6e30feece56c276d725150faed27a199b2e46ac573a2dffb2dc3bff5311a", + "receiptTrie": "0x0fb518c7915e8be37f2aa095af144d5e9a121e4dc65b20bbe109b9a001da1cb0", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x019a28", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0e0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa4abd04583d0ef65ad33c37d0765ea6c2f15901aa9e81ffdcb3936b52dba00a5" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x01", + "r": "0xfa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257", + "s": "0x7c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa", + "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1", + "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x03", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0x5d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78", + "s": "0x7054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x04", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0x903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7d", + "s": "0x6989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xa99505076b977d19b10f2d39bef3f9d5b8d9cca04597cf378d3fa50006f03492", @@ -1174,7 +3004,7 @@ }, "017-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(2, 2, 1, 1, 1)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1207,7 +3037,137 @@ { "rlp": "0xf90541f90243a0a99505076b977d19b10f2d39bef3f9d5b8d9cca04597cf378d3fa50006f03492a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09406ef36be4f44153414bf7d584e2d66e9610f4246a41502503e92f8b42165bda0b4c142d700fbc5344ba1ae688a9a1fb035d02f7e333ac66e03a4364455700fc5a00fb518c7915e8be37f2aa095af144d5e9a121e4dc65b20bbe109b9a001da1cb0b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083019a280c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f902f6b8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6b88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdeb88803f885010480078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7da06989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139c0c0", "expectException": "invalid_blob_count", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xa99505076b977d19b10f2d39bef3f9d5b8d9cca04597cf378d3fa50006f03492", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x9406ef36be4f44153414bf7d584e2d66e9610f4246a41502503e92f8b42165bd", + "transactionsTrie": "0xb4c142d700fbc5344ba1ae688a9a1fb035d02f7e333ac66e03a4364455700fc5", + "receiptTrie": "0x0fb518c7915e8be37f2aa095af144d5e9a121e4dc65b20bbe109b9a001da1cb0", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x019a28", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0e0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x957e6fe78317912cfb3c879bff37084cf98f77a2fe86544064ed068d2ee8b701" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0x2834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5", + "s": "0x5566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0xc2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6", + "s": "0x584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1", + "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x03", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0x5d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78", + "s": "0x7054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x04", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0x903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7d", + "s": "0x6989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xa99505076b977d19b10f2d39bef3f9d5b8d9cca04597cf378d3fa50006f03492", @@ -1243,7 +3203,7 @@ }, "018-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(4, 1, 1, 1)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1276,7 +3236,118 @@ { "rlp": "0xf904d7f90243a0f290d8b133d1625a37756795c42509a96976a4a88ea2b3b807761f6af01be345a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cabca10654295a18386e33b3c72324313ae0bb5374dec4365e37234600f23557a01c6b68ccfe9062c33f455258f202caa6edb49174c1cbb76595d95aa5d2bbd06fa080a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830148200c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9028cb8ec03f8e9018080078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a05c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354a038db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdec0c0", "expectException": "invalid_blob_count", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xf290d8b133d1625a37756795c42509a96976a4a88ea2b3b807761f6af01be345", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xcabca10654295a18386e33b3c72324313ae0bb5374dec4365e37234600f23557", + "transactionsTrie": "0x1c6b68ccfe9062c33f455258f202caa6edb49174c1cbb76595d95aa5d2bbd06f", + "receiptTrie": "0x80a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x014820", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0e0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x09ae5a602e57474c71cfd235ec2081079c9de6f19fdc5c33a0fa7ba701f275db" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003" + ], + "v": "0x01", + "r": "0x5c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354", + "s": "0x38db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa", + "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1", + "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x03", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0x5d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78", + "s": "0x7054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xf290d8b133d1625a37756795c42509a96976a4a88ea2b3b807761f6af01be345", @@ -1312,7 +3383,7 @@ }, "019-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(3, 2, 1, 1)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1345,7 +3416,118 @@ { "rlp": "0xf904d8f90243a0f290d8b133d1625a37756795c42509a96976a4a88ea2b3b807761f6af01be345a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cabca10654295a18386e33b3c72324313ae0bb5374dec4365e37234600f23557a0b0f4ac5bd5ec3b5c8ff39fbc3e8fb6d9c39794f66e839d8446bfe691bab5e7e5a080a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830148200c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9028db8cb03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6b88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdec0c0", "expectException": "invalid_blob_count", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xf290d8b133d1625a37756795c42509a96976a4a88ea2b3b807761f6af01be345", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xcabca10654295a18386e33b3c72324313ae0bb5374dec4365e37234600f23557", + "transactionsTrie": "0xb0f4ac5bd5ec3b5c8ff39fbc3e8fb6d9c39794f66e839d8446bfe691bab5e7e5", + "receiptTrie": "0x80a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x014820", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0e0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x3b7de646c7b558777069d40a10a53c3d86296219260e91246fccbec2d515e908" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x01", + "r": "0xfa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257", + "s": "0x7c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0xc2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6", + "s": "0x584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1", + "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x03", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0x5d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78", + "s": "0x7054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xf290d8b133d1625a37756795c42509a96976a4a88ea2b3b807761f6af01be345", @@ -1381,7 +3563,7 @@ }, "020-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(2, 2, 2, 1)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1414,7 +3596,118 @@ { "rlp": "0xf904d9f90243a0f290d8b133d1625a37756795c42509a96976a4a88ea2b3b807761f6af01be345a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cabca10654295a18386e33b3c72324313ae0bb5374dec4365e37234600f23557a043a1c8184648d00e80478a9eb52b7bdf242666738ce2168673fa1a68934e7d3ba080a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830148200c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9028eb8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6b8aa03f8a7010280078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a0319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635ea01870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218befb88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdec0c0", "expectException": "invalid_blob_count", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xf290d8b133d1625a37756795c42509a96976a4a88ea2b3b807761f6af01be345", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xcabca10654295a18386e33b3c72324313ae0bb5374dec4365e37234600f23557", + "transactionsTrie": "0x43a1c8184648d00e80478a9eb52b7bdf242666738ce2168673fa1a68934e7d3b", + "receiptTrie": "0x80a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x014820", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0e0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x9ca7e07dd2718b5b552f9a31416bcdd90cb69538aacbd506d9a5495ff3b8b3ac" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0x2834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5", + "s": "0x5566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0xc2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6", + "s": "0x584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x01", + "r": "0x319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635e", + "s": "0x1870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218bef", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x03", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0x5d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78", + "s": "0x7054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xf290d8b133d1625a37756795c42509a96976a4a88ea2b3b807761f6af01be345", @@ -1450,7 +3743,7 @@ }, "021-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(5, 1, 1)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1483,7 +3776,99 @@ { "rlp": "0xf9046ff90242a004ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e0b7e3d3f3a9c7d11829923d808acac48b451644534b1d7a450ef60166f7b946a04c9b8c4e230ca5d18c785686373231a4be0587fbef4979e5be9094e23e68c9d2a09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90225b9010e03f9010a018080078252089400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000480a05b5b2b349f42d7b29873999b615a746b86b25832b74a4e443e34fa9222e3de16a033a55d0dc9ab01945ab29789a6c93b98541724dd932467aed99cc92bc5437c84b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429c0c0", "expectException": "invalid_blob_count", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x04ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xe0b7e3d3f3a9c7d11829923d808acac48b451644534b1d7a450ef60166f7b946", + "transactionsTrie": "0x4c9b8c4e230ca5d18c785686373231a4be0587fbef4979e5be9094e23e68c9d2", + "receiptTrie": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xf618", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0e0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x045a101ec1108bba07fd0e7a57a01ad683a9d09611f4574032d1b1b8184b211f" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003", + "0x0100000000000000000000000000000000000000000000000000000000000004" + ], + "v": "0x00", + "r": "0x5b5b2b349f42d7b29873999b615a746b86b25832b74a4e443e34fa9222e3de16", + "s": "0x33a55d0dc9ab01945ab29789a6c93b98541724dd932467aed99cc92bc5437c84", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa", + "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1", + "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x04ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79", @@ -1519,7 +3904,7 @@ }, "022-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(4, 2, 1)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1552,7 +3937,99 @@ { "rlp": "0xf9046ef90242a004ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e0b7e3d3f3a9c7d11829923d808acac48b451644534b1d7a450ef60166f7b946a0ef2f0fb990681435e2cdebc1a1d7b6709c0e477dfd8b0c992ed7b650190a9d91a09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90224b8ec03f8e9018080078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a05c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354a038db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6b88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429c0c0", "expectException": "invalid_blob_count", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x04ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xe0b7e3d3f3a9c7d11829923d808acac48b451644534b1d7a450ef60166f7b946", + "transactionsTrie": "0xef2f0fb990681435e2cdebc1a1d7b6709c0e477dfd8b0c992ed7b650190a9d91", + "receiptTrie": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xf618", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0e0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xdf1944e30961bb9ebb64a7278a2a5b2c8c4bfa12d6c8cd058bc2e9b53ef57606" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003" + ], + "v": "0x01", + "r": "0x5c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354", + "s": "0x38db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0xc2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6", + "s": "0x584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1", + "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x04ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79", @@ -1588,7 +4065,7 @@ }, "023-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(3, 3, 1)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1621,7 +4098,99 @@ { "rlp": "0xf9046ef90242a004ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e0b7e3d3f3a9c7d11829923d808acac48b451644534b1d7a450ef60166f7b946a05a80f2685e98837d0c58e4c06331a8c2c2c9c73889a0c415497518a05efcf03ea09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90224b8cb03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299b8cb03f8c8010180078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a08e5455a1dfad86ef676e7deeda1aa045e8e1d0b1c62bff9a8720b8dc91de2746a05f2e35151ad3640d2724257c65cfabe33c033897ba27b10232a29be4033ac391b88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429c0c0", "expectException": "invalid_blob_count", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x04ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xe0b7e3d3f3a9c7d11829923d808acac48b451644534b1d7a450ef60166f7b946", + "transactionsTrie": "0x5a80f2685e98837d0c58e4c06331a8c2c2c9c73889a0c415497518a05efcf03e", + "receiptTrie": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xf618", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0e0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xf5bfa2ca4aa0e88a27ccdf5d08519ddae95cbee01d035870d5cf619e8d7b4154" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x01", + "r": "0xfa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257", + "s": "0x7c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x01", + "r": "0x8e5455a1dfad86ef676e7deeda1aa045e8e1d0b1c62bff9a8720b8dc91de2746", + "s": "0x5f2e35151ad3640d2724257c65cfabe33c033897ba27b10232a29be4033ac391", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1", + "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x04ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79", @@ -1657,7 +4226,7 @@ }, "024-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(3, 2, 2)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1690,7 +4259,99 @@ { "rlp": "0xf9046ff90242a004ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e0b7e3d3f3a9c7d11829923d808acac48b451644534b1d7a450ef60166f7b946a08f2537a5a10ece9ba7ecec21b06a3fb5f95dd60fdd2a9d55d964500c18a17a0aa09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90225b8cb03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6b8aa03f8a7010280078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a0319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635ea01870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218befc0c0", "expectException": "invalid_blob_count", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x04ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xe0b7e3d3f3a9c7d11829923d808acac48b451644534b1d7a450ef60166f7b946", + "transactionsTrie": "0x8f2537a5a10ece9ba7ecec21b06a3fb5f95dd60fdd2a9d55d964500c18a17a0a", + "receiptTrie": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xf618", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0e0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe0257ec2b592be010ff7a59301b4a9277fefe1d08bac7761aa1624e0dcc9c021" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x01", + "r": "0xfa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257", + "s": "0x7c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0xc2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6", + "s": "0x584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x01", + "r": "0x319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635e", + "s": "0x1870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218bef", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x04ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79", @@ -1726,7 +4387,7 @@ }, "025-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(6, 1)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1759,7 +4420,80 @@ { "rlp": "0xf90406f90242a04dec6cdeae5bde5a2e743bdecfd9fb58fbeff6b01d51c5ae9c274f2ab1fab413a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa087413205e068db30167044d42b0e8a4175ddd2c58c160b731875b94ba46d9479a03ef79e2b75483b3af114ba775bce341025d4545d443a5620f560499e9c4f4da3a010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f901bcb9012f03f9012b018080078252089400000000000000000000000000000000000001000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a0a3fde4e69b58ab7846a662946c81c947872ca16ed64bca3e9f2e298a83a7dd0fa036264b4930ad766cf871de20d6b5a66c4660988c83a0bfad8f50847d16cab98db88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccc0c0", "expectException": "invalid_blob_count", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x4dec6cdeae5bde5a2e743bdecfd9fb58fbeff6b01d51c5ae9c274f2ab1fab413", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x87413205e068db30167044d42b0e8a4175ddd2c58c160b731875b94ba46d9479", + "transactionsTrie": "0x3ef79e2b75483b3af114ba775bce341025d4545d443a5620f560499e9c4f4da3", + "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa410", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0e0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x5e76ec686af211d04389e73fe61a527983293e62bc8de852720f6aa210a8d847" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003", + "0x0100000000000000000000000000000000000000000000000000000000000004", + "0x0100000000000000000000000000000000000000000000000000000000000005" + ], + "v": "0x01", + "r": "0xa3fde4e69b58ab7846a662946c81c947872ca16ed64bca3e9f2e298a83a7dd0f", + "s": "0x36264b4930ad766cf871de20d6b5a66c4660988c83a0bfad8f50847d16cab98d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa", + "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x4dec6cdeae5bde5a2e743bdecfd9fb58fbeff6b01d51c5ae9c274f2ab1fab413", @@ -1795,7 +4529,7 @@ }, "026-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(5, 2)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1828,7 +4562,80 @@ { "rlp": "0xf90407f90242a04dec6cdeae5bde5a2e743bdecfd9fb58fbeff6b01d51c5ae9c274f2ab1fab413a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa087413205e068db30167044d42b0e8a4175ddd2c58c160b731875b94ba46d9479a0cf4339618e75779f0cffe7d0a861a6e46256fdc5b5c65c01385a13ec4e2661f2a010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f901bdb9010e03f9010a018080078252089400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000480a05b5b2b349f42d7b29873999b615a746b86b25832b74a4e443e34fa9222e3de16a033a55d0dc9ab01945ab29789a6c93b98541724dd932467aed99cc92bc5437c84b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6c0c0", "expectException": "invalid_blob_count", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x4dec6cdeae5bde5a2e743bdecfd9fb58fbeff6b01d51c5ae9c274f2ab1fab413", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x87413205e068db30167044d42b0e8a4175ddd2c58c160b731875b94ba46d9479", + "transactionsTrie": "0xcf4339618e75779f0cffe7d0a861a6e46256fdc5b5c65c01385a13ec4e2661f2", + "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa410", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0e0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x520112fe4f8dd23b33006edbf8082f07b9afaa361acd1aed64686745dcf98f85" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003", + "0x0100000000000000000000000000000000000000000000000000000000000004" + ], + "v": "0x00", + "r": "0x5b5b2b349f42d7b29873999b615a746b86b25832b74a4e443e34fa9222e3de16", + "s": "0x33a55d0dc9ab01945ab29789a6c93b98541724dd932467aed99cc92bc5437c84", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0xc2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6", + "s": "0x584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x4dec6cdeae5bde5a2e743bdecfd9fb58fbeff6b01d51c5ae9c274f2ab1fab413", @@ -1864,7 +4671,7 @@ }, "027-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(4, 3)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1897,7 +4704,80 @@ { "rlp": "0xf90405f90242a04dec6cdeae5bde5a2e743bdecfd9fb58fbeff6b01d51c5ae9c274f2ab1fab413a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa087413205e068db30167044d42b0e8a4175ddd2c58c160b731875b94ba46d9479a09f28f3ed16e1a426feade81e6012bd222a2bdef4cc627fdcfc20e2a385be161da010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f901bbb8ec03f8e9018080078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a05c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354a038db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05b8cb03f8c8010180078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a08e5455a1dfad86ef676e7deeda1aa045e8e1d0b1c62bff9a8720b8dc91de2746a05f2e35151ad3640d2724257c65cfabe33c033897ba27b10232a29be4033ac391c0c0", "expectException": "invalid_blob_count", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x4dec6cdeae5bde5a2e743bdecfd9fb58fbeff6b01d51c5ae9c274f2ab1fab413", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x87413205e068db30167044d42b0e8a4175ddd2c58c160b731875b94ba46d9479", + "transactionsTrie": "0x9f28f3ed16e1a426feade81e6012bd222a2bdef4cc627fdcfc20e2a385be161d", + "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa410", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0e0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xbcf9e948711c80774b480d9ead00c8ec6868c4369c24d40fb78e555675195886" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003" + ], + "v": "0x01", + "r": "0x5c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354", + "s": "0x38db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x01", + "r": "0x8e5455a1dfad86ef676e7deeda1aa045e8e1d0b1c62bff9a8720b8dc91de2746", + "s": "0x5f2e35151ad3640d2724257c65cfabe33c033897ba27b10232a29be4033ac391", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x4dec6cdeae5bde5a2e743bdecfd9fb58fbeff6b01d51c5ae9c274f2ab1fab413", diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/invalid_normal_gas.json b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/invalid_normal_gas.json index 4d88e123a7b..271b6de34a9 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/invalid_normal_gas.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/invalid_normal_gas.json @@ -1,7 +1,7 @@ { "000-fork=Cancun-insufficient_max_fee_per_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -34,7 +34,55 @@ { "rlp": "0xf902d1f90240a04348268a740c77b36e84b3bc28e502a753a517d1a3ccd4bbf00efbee2b494047a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b70452996c18d2897321be12cbe65c99b5619870503d4ef7c04203a6492946b6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080068252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0addeb69c5295c1ddd6fb930596ee852996564ce896acc1f69a226f6e440482bca07ba3ff1923416d370a26e28d364d2186ab2c3bf3d0094919b13b64d77c9879f2c0c0", "expectException": "insufficient max fee per gas", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x4348268a740c77b36e84b3bc28e502a753a517d1a3ccd4bbf00efbee2b494047", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xb70452996c18d2897321be12cbe65c99b5619870503d4ef7c04203a6492946b6", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x8e5f44cda0a3a6c9f56ccb63ecc706007c98ea10adaf4f208e379219d5f59c08" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x06", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xaddeb69c5295c1ddd6fb930596ee852996564ce896acc1f69a226f6e440482bc", + "s": "0x7ba3ff1923416d370a26e28d364d2186ab2c3bf3d0094919b13b64d77c9879f2", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x4348268a740c77b36e84b3bc28e502a753a517d1a3ccd4bbf00efbee2b494047", diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/invalid_tx_blob_count.json b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/invalid_tx_blob_count.json index 5d31e72e8d5..7fd04e42b95 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/invalid_tx_blob_count.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/invalid_tx_blob_count.json @@ -1,7 +1,7 @@ { "000-fork=Cancun-too_few_blobs": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -34,7 +34,53 @@ { "rlp": "0xf902adf9023da0327e49c7a3ac30c7308a1c318a074d926ad6e4ef6885c58664bde91baea04fc4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0528ec623b44ac4e95faee7224facc3febfbe98d73368b01f83ad805f2657fea1a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830e0000a00000000000000000000000000000000000000000000000000000000000000000f869b86703f864018080078252089400000000000000000000000000000000000001000180c001c080a0de3ecf0321e2d26c34d6b9bd1ffb5a30167abafd5ecacd477049544c23d402cda06c56b464881a4af7bb8216d47c6c5e3286395027af44044b3d7d31a2d24901f2c0c0", "expectException": "zero blob tx", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x327e49c7a3ac30c7308a1c318a074d926ad6e4ef6885c58664bde91baea04fc4", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x528ec623b44ac4e95faee7224facc3febfbe98d73368b01f83ad805f2657fea1", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x99727d67f3ed7f531fd2ca26118fe3988e856a69ea090a28fb29c2dd937abe85" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [], + "v": "0x00", + "r": "0xde3ecf0321e2d26c34d6b9bd1ffb5a30167abafd5ecacd477049544c23d402cd", + "s": "0x6c56b464881a4af7bb8216d47c6c5e3286395027af44044b3d7d31a2d24901f2", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x327e49c7a3ac30c7308a1c318a074d926ad6e4ef6885c58664bde91baea04fc4", @@ -70,7 +116,7 @@ }, "001-fork=Cancun-too_many_blobs": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -103,7 +149,61 @@ { "rlp": "0xf9039df90242a09c823f5a5fff3d59eae97c2a49a6a32d7cdf474478e97fcd6fedb97e058052d3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c4e1946638e354f510a20898a1746fc3f047c089153990ae220f41fe8e993252a0a9f9ecaf41694501fe48865981e0e02ef87ef20d265b28a026ebf2e86cf0ada9a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90153b9015003f9014c018080078252089400000000000000000000000000000000000001000180c001f8e7a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a00100000000000000000000000000000000000000000000000000000000000005a0010000000000000000000000000000000000000000000000000000000000000601a0af0a7ac2ca1a38440aff74ef5585589516aaf73984ca8ebee703f42a54dab9f6a056fc83d4ea63ef0f3b40ef86d36f887df7c46bad309dca7ceda55a2ba985f7a1c0c0", "expectException": "too many blobs", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x9c823f5a5fff3d59eae97c2a49a6a32d7cdf474478e97fcd6fedb97e058052d3", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xc4e1946638e354f510a20898a1746fc3f047c089153990ae220f41fe8e993252", + "transactionsTrie": "0xa9f9ecaf41694501fe48865981e0e02ef87ef20d265b28a026ebf2e86cf0ada9", + "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x5208", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0e0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xb174770ab720577a08687ca81a12aa1c31ca5c638bd1860cd85a301043a84760" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003", + "0x0100000000000000000000000000000000000000000000000000000000000004", + "0x0100000000000000000000000000000000000000000000000000000000000005", + "0x0100000000000000000000000000000000000000000000000000000000000006" + ], + "v": "0x01", + "r": "0xaf0a7ac2ca1a38440aff74ef5585589516aaf73984ca8ebee703f42a54dab9f6", + "s": "0x56fc83d4ea63ef0f3b40ef86d36f887df7c46bad309dca7ceda55a2ba985f7a1", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x9c823f5a5fff3d59eae97c2a49a6a32d7cdf474478e97fcd6fedb97e058052d3", diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/invalid_tx_max_fee_per_blob_gas.json b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/invalid_tx_max_fee_per_blob_gas.json index f730b3e69ee..57547f7cc83 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/invalid_tx_max_fee_per_blob_gas.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/invalid_tx_max_fee_per_blob_gas.json @@ -1,7 +1,7 @@ { "000-fork=Cancun-insufficient_max_fee_per_blob_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -88,7 +88,55 @@ { "rlp": "0xf902d1f90240a0a0f6035c85669c43bf53dd8c4141ba13853871a051c8be68f63430e222192c27a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa088f4e11957ad01621ac155dd46f9d6a836e296cd869ef56a3e11f684bd30810aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a0000801880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083240000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", "expectException": "insufficient max fee per blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xa0f6035c85669c43bf53dd8c4141ba13853871a051c8be68f63430e222192c27", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x88f4e11957ad01621ac155dd46f9d6a836e296cd869ef56a3e11f684bd30810a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x240000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xaebf0315015f552eeb84c9b2d9a7ba12d62f70b92cda256b43f3d8af45f05d26" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", + "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xa0f6035c85669c43bf53dd8c4141ba13853871a051c8be68f63430e222192c27", @@ -144,7 +192,7 @@ }, "001-fork=Cancun-invalid_max_fee_per_blob_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -177,7 +225,55 @@ { "rlp": "0xf902cef9023da09c51f354552b147d6bf4e2fe0fafd358b1bcae585341aa66b7b4af9eb165dee5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0528ec623b44ac4e95faee7224facc3febfbe98d73368b01f83ad805f2657fea1a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c080e1a0010000000000000000000000000000000000000000000000000000000000000080a0df26254112c6a69f0cf31138ec90f834de7b3ffb6241107682ddb0fc5532030ca02e424096551ad5dc99439167e2bf4bb3de61f86e752a85b448d339d77bcda1b0c0c0", "expectException": "invalid max fee per blob gas", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x9c51f354552b147d6bf4e2fe0fafd358b1bcae585341aa66b7b4af9eb165dee5", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x528ec623b44ac4e95faee7224facc3febfbe98d73368b01f83ad805f2657fea1", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe7620d61234fc13400097a16ee8e0aef1ba0394be6eac5e724fb956e36276cd5" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x00", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xdf26254112c6a69f0cf31138ec90f834de7b3ffb6241107682ddb0fc5532030c", + "s": "0x2e424096551ad5dc99439167e2bf4bb3de61f86e752a85b448d339d77bcda1b0", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x9c51f354552b147d6bf4e2fe0fafd358b1bcae585341aa66b7b4af9eb165dee5", diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/valid_blob_tx_combinations.json b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/valid_blob_tx_combinations.json index 21c45cab8c3..d8b37751e67 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/valid_blob_tx_combinations.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/valid_blob_tx_combinations.json @@ -1,7 +1,7 @@ { "000-fork=Cancun-blobs_per_tx=(1, 1, 1, 1, 1, 1)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -224,7 +224,7 @@ }, "001-fork=Cancun-blobs_per_tx=(1, 1, 1, 1, 1)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -427,7 +427,7 @@ }, "002-fork=Cancun-blobs_per_tx=(1, 1, 1, 1, 2)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -631,7 +631,7 @@ }, "003-fork=Cancun-blobs_per_tx=(1, 1, 1, 1)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -814,7 +814,7 @@ }, "004-fork=Cancun-blobs_per_tx=(1, 1, 1, 2)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -998,7 +998,7 @@ }, "005-fork=Cancun-blobs_per_tx=(1, 1, 1, 3)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1183,7 +1183,7 @@ }, "006-fork=Cancun-blobs_per_tx=(1, 1, 2, 2)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1368,7 +1368,7 @@ }, "007-fork=Cancun-blobs_per_tx=(1, 1, 1)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1531,7 +1531,7 @@ }, "008-fork=Cancun-blobs_per_tx=(1, 1, 2)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1695,7 +1695,7 @@ }, "009-fork=Cancun-blobs_per_tx=(1, 1, 3)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1860,7 +1860,7 @@ }, "010-fork=Cancun-blobs_per_tx=(1, 1, 4)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2026,7 +2026,7 @@ }, "011-fork=Cancun-blobs_per_tx=(1, 2, 2)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2191,7 +2191,7 @@ }, "012-fork=Cancun-blobs_per_tx=(1, 2, 3)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2357,7 +2357,7 @@ }, "013-fork=Cancun-blobs_per_tx=(2, 2, 2)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2523,7 +2523,7 @@ }, "014-fork=Cancun-blobs_per_tx=(1, 1)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2666,7 +2666,7 @@ }, "015-fork=Cancun-blobs_per_tx=(1, 2)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2810,7 +2810,7 @@ }, "016-fork=Cancun-blobs_per_tx=(1, 3)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2955,7 +2955,7 @@ }, "017-fork=Cancun-blobs_per_tx=(1, 4)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -3101,7 +3101,7 @@ }, "018-fork=Cancun-blobs_per_tx=(1, 5)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -3248,7 +3248,7 @@ }, "019-fork=Cancun-blobs_per_tx=(2, 2)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -3393,7 +3393,7 @@ }, "020-fork=Cancun-blobs_per_tx=(2, 3)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -3539,7 +3539,7 @@ }, "021-fork=Cancun-blobs_per_tx=(2, 4)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -3686,7 +3686,7 @@ }, "022-fork=Cancun-blobs_per_tx=(3, 3)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -3833,7 +3833,7 @@ }, "023-fork=Cancun-blobs_per_tx=(1,)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -3956,7 +3956,7 @@ }, "024-fork=Cancun-blobs_per_tx=(2,)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -4080,7 +4080,7 @@ }, "025-fork=Cancun-blobs_per_tx=(3,)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -4205,7 +4205,7 @@ }, "026-fork=Cancun-blobs_per_tx=(4,)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -4331,7 +4331,7 @@ }, "027-fork=Cancun-blobs_per_tx=(5,)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -4458,7 +4458,7 @@ }, "028-fork=Cancun-blobs_per_tx=(6,)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -4586,7 +4586,7 @@ }, "029-fork=Cancun-blobs_per_tx=(2, 1, 1, 1, 1)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -4790,7 +4790,7 @@ }, "030-fork=Cancun-blobs_per_tx=(2, 1, 1, 1)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -4974,7 +4974,7 @@ }, "031-fork=Cancun-blobs_per_tx=(3, 1, 1, 1)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -5159,7 +5159,7 @@ }, "032-fork=Cancun-blobs_per_tx=(2, 2, 1, 1)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -5344,7 +5344,7 @@ }, "033-fork=Cancun-blobs_per_tx=(2, 1, 1)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -5508,7 +5508,7 @@ }, "034-fork=Cancun-blobs_per_tx=(3, 1, 1)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -5673,7 +5673,7 @@ }, "035-fork=Cancun-blobs_per_tx=(4, 1, 1)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -5839,7 +5839,7 @@ }, "036-fork=Cancun-blobs_per_tx=(2, 2, 1)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -6004,7 +6004,7 @@ }, "037-fork=Cancun-blobs_per_tx=(3, 2, 1)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -6170,7 +6170,7 @@ }, "038-fork=Cancun-blobs_per_tx=(2, 1)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -6314,7 +6314,7 @@ }, "039-fork=Cancun-blobs_per_tx=(3, 1)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -6459,7 +6459,7 @@ }, "040-fork=Cancun-blobs_per_tx=(4, 1)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -6605,7 +6605,7 @@ }, "041-fork=Cancun-blobs_per_tx=(5, 1)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -6752,7 +6752,7 @@ }, "042-fork=Cancun-blobs_per_tx=(3, 2)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -6898,7 +6898,7 @@ }, "043-fork=Cancun-blobs_per_tx=(4, 2)": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs_full/reject_valid_full_blob_in_block_rlp.json b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs_full/reject_valid_full_blob_in_block_rlp.json index 6a1fee8737b..691992c20f3 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs_full/reject_valid_full_blob_in_block_rlp.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs_full/reject_valid_full_blob_in_block_rlp.json @@ -1,7 +1,7 @@ { "000-fork=Cancun-one_full_blob_one_tx": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -34,7 +34,55 @@ { "rlp": "0xfa020347f90242a05e214032b2c3345807ca43e38d0495d5150729153f66a5536b34fe9f5af98dd7a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f43e34d45b96073376e0dc37a47ab53620a19ed5dfd325eaf679543f469e417ea0efd8f2a0af0fc5ffb3d2e5b3b3400ad27fa828ca9c8c97c7dd04c151e47282d1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000fa0200fcba0200f803fa0200f3f885018080078252089400000000000000000000000000000000000001000180c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401401a0477eb0e8afffdcfc82caa0d54a014e5b79bd52ea7f071fbe92991421172a682da04b38c97aae73304105f25d48e40e21ff5eb11c489c318ae37503ae4da5c3a403fa020004ba0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1b0c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1b0c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0c0", "expectException": "invalid transaction", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x5e214032b2c3345807ca43e38d0495d5150729153f66a5536b34fe9f5af98dd7", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf43e34d45b96073376e0dc37a47ab53620a19ed5dfd325eaf679543f469e417e", + "transactionsTrie": "0xefd8f2a0af0fc5ffb3d2e5b3b3400ad27fa828ca9c8c97c7dd04c151e47282d1", + "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x5208", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa741fc4e2854de4272a2e56d1d502ec9986e1f93859e5debf98815c740850023" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014" + ], + "v": "0x01", + "r": "0x477eb0e8afffdcfc82caa0d54a014e5b79bd52ea7f071fbe92991421172a682d", + "s": "0x4b38c97aae73304105f25d48e40e21ff5eb11c489c318ae37503ae4da5c3a403", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x5e214032b2c3345807ca43e38d0495d5150729153f66a5536b34fe9f5af98dd7", @@ -70,7 +118,7 @@ }, "001-fork=Cancun-one_full_blob_max_txs": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -103,7 +151,155 @@ { "rlp": "0xfa0205faf90243a05e214032b2c3345807ca43e38d0495d5150729153f66a5536b34fe9f5af98dd7a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ed01656656d8c6df0749aad49dcd4b998f0caa6d602bec0bdb9611a170bc3259a072efca766822cba50f24e55abd527ee5433f138e0ea7495634455569675a5269a0c88bbb6ffab5658b295a44086ed7e77d4526e07e4025496e68a55042b24c81beb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301ec300c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000fa0203aeba0200f803fa0200f3f885018080078252089400000000000000000000000000000000000001000180c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401401a0477eb0e8afffdcfc82caa0d54a014e5b79bd52ea7f071fbe92991421172a682da04b38c97aae73304105f25d48e40e21ff5eb11c489c318ae37503ae4da5c3a403fa020004ba0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1b0c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1b0c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401401a0390d51d461fde99c73c14514879c0eecbe3f6c9e9a348dcd42bcacd811e4c9fda03f1cce5086c7a782e0380a8c59845bd9b897432e0fd6b192480c20d3bb53dd09b88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401480a0632536c226ddbba7b5903bee9f1dfc437e2d7f94520eb205ed5bce8f3ef29dc3a06c01f08279d1aab38190d2c94e5b13c69a44b72818c1b3b444593368bc29a5cbb88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401480a0ad3c3098708fc8c737cbb3f2b3d5b803c5f3d0ee485771888d37345c47ad938ea00c62332a5df97c52b536e7f68d6a1deb255c677f64ea209d4e0411a46cd0de9ab88803f885010480078252089400000000000000000000000000000000000001000180c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401480a0570d2ab90e8a4496345779ab0f6f7ace2a1d48ebe4df60877bb1b10c62dfbd34a058b253420cf921bceb8a531e5a22b9fcdb12cb9ba8d2c343a4525e8f0e58b7ecb88803f885010580078252089400000000000000000000000000000000000001000180c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401480a006d628345c1f03ced02445b38d3f0c796a4d041c00b71d1ec77cc1de584141bda071aa73d61ff7955dd11fd98d0922c73ec5b8a5e1f60eb906154284c72b64e382c0c0", "expectException": "invalid transaction", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x5e214032b2c3345807ca43e38d0495d5150729153f66a5536b34fe9f5af98dd7", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xed01656656d8c6df0749aad49dcd4b998f0caa6d602bec0bdb9611a170bc3259", + "transactionsTrie": "0x72efca766822cba50f24e55abd527ee5433f138e0ea7495634455569675a5269", + "receiptTrie": "0xc88bbb6ffab5658b295a44086ed7e77d4526e07e4025496e68a55042b24c81be", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01ec30", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0c0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa4ac66e7a89abb4f0fb63e67d7c550246ad394c5af6d582c0c155979be4dbb26" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014" + ], + "v": "0x01", + "r": "0x477eb0e8afffdcfc82caa0d54a014e5b79bd52ea7f071fbe92991421172a682d", + "s": "0x4b38c97aae73304105f25d48e40e21ff5eb11c489c318ae37503ae4da5c3a403", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014" + ], + "v": "0x01", + "r": "0x390d51d461fde99c73c14514879c0eecbe3f6c9e9a348dcd42bcacd811e4c9fd", + "s": "0x3f1cce5086c7a782e0380a8c59845bd9b897432e0fd6b192480c20d3bb53dd09", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014" + ], + "v": "0x00", + "r": "0x632536c226ddbba7b5903bee9f1dfc437e2d7f94520eb205ed5bce8f3ef29dc3", + "s": "0x6c01f08279d1aab38190d2c94e5b13c69a44b72818c1b3b444593368bc29a5cb", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x03", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014" + ], + "v": "0x00", + "r": "0xad3c3098708fc8c737cbb3f2b3d5b803c5f3d0ee485771888d37345c47ad938e", + "s": "0x0c62332a5df97c52b536e7f68d6a1deb255c677f64ea209d4e0411a46cd0de9a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x04", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014" + ], + "v": "0x00", + "r": "0x570d2ab90e8a4496345779ab0f6f7ace2a1d48ebe4df60877bb1b10c62dfbd34", + "s": "0x58b253420cf921bceb8a531e5a22b9fcdb12cb9ba8d2c343a4525e8f0e58b7ec", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x05", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014" + ], + "v": "0x00", + "r": "0x06d628345c1f03ced02445b38d3f0c796a4d041c00b71d1ec77cc1de584141bd", + "s": "0x71aa73d61ff7955dd11fd98d0922c73ec5b8a5e1f60eb906154284c72b64e382", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x5e214032b2c3345807ca43e38d0495d5150729153f66a5536b34fe9f5af98dd7", @@ -139,7 +335,7 @@ }, "002-fork=Cancun-one_full_blob_at_the_end_max_txs": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -172,7 +368,155 @@ { "rlp": "0xfa0205faf90243a05e214032b2c3345807ca43e38d0495d5150729153f66a5536b34fe9f5af98dd7a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ed01656656d8c6df0749aad49dcd4b998f0caa6d602bec0bdb9611a170bc3259a072efca766822cba50f24e55abd527ee5433f138e0ea7495634455569675a5269a0c88bbb6ffab5658b295a44086ed7e77d4526e07e4025496e68a55042b24c81beb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301ec300c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000fa0203aeb88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401401a0477eb0e8afffdcfc82caa0d54a014e5b79bd52ea7f071fbe92991421172a682da04b38c97aae73304105f25d48e40e21ff5eb11c489c318ae37503ae4da5c3a403b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401401a0390d51d461fde99c73c14514879c0eecbe3f6c9e9a348dcd42bcacd811e4c9fda03f1cce5086c7a782e0380a8c59845bd9b897432e0fd6b192480c20d3bb53dd09b88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401480a0632536c226ddbba7b5903bee9f1dfc437e2d7f94520eb205ed5bce8f3ef29dc3a06c01f08279d1aab38190d2c94e5b13c69a44b72818c1b3b444593368bc29a5cbb88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401480a0ad3c3098708fc8c737cbb3f2b3d5b803c5f3d0ee485771888d37345c47ad938ea00c62332a5df97c52b536e7f68d6a1deb255c677f64ea209d4e0411a46cd0de9ab88803f885010480078252089400000000000000000000000000000000000001000180c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401480a0570d2ab90e8a4496345779ab0f6f7ace2a1d48ebe4df60877bb1b10c62dfbd34a058b253420cf921bceb8a531e5a22b9fcdb12cb9ba8d2c343a4525e8f0e58b7ecba0200f803fa0200f3f885010580078252089400000000000000000000000000000000000001000180c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401480a006d628345c1f03ced02445b38d3f0c796a4d041c00b71d1ec77cc1de584141bda071aa73d61ff7955dd11fd98d0922c73ec5b8a5e1f60eb906154284c72b64e382fa020004ba0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1b0c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1b0c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0c0", "expectException": "invalid transaction", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x5e214032b2c3345807ca43e38d0495d5150729153f66a5536b34fe9f5af98dd7", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xed01656656d8c6df0749aad49dcd4b998f0caa6d602bec0bdb9611a170bc3259", + "transactionsTrie": "0x72efca766822cba50f24e55abd527ee5433f138e0ea7495634455569675a5269", + "receiptTrie": "0xc88bbb6ffab5658b295a44086ed7e77d4526e07e4025496e68a55042b24c81be", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01ec30", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0c0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa4ac66e7a89abb4f0fb63e67d7c550246ad394c5af6d582c0c155979be4dbb26" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014" + ], + "v": "0x01", + "r": "0x477eb0e8afffdcfc82caa0d54a014e5b79bd52ea7f071fbe92991421172a682d", + "s": "0x4b38c97aae73304105f25d48e40e21ff5eb11c489c318ae37503ae4da5c3a403", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014" + ], + "v": "0x01", + "r": "0x390d51d461fde99c73c14514879c0eecbe3f6c9e9a348dcd42bcacd811e4c9fd", + "s": "0x3f1cce5086c7a782e0380a8c59845bd9b897432e0fd6b192480c20d3bb53dd09", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014" + ], + "v": "0x00", + "r": "0x632536c226ddbba7b5903bee9f1dfc437e2d7f94520eb205ed5bce8f3ef29dc3", + "s": "0x6c01f08279d1aab38190d2c94e5b13c69a44b72818c1b3b444593368bc29a5cb", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x03", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014" + ], + "v": "0x00", + "r": "0xad3c3098708fc8c737cbb3f2b3d5b803c5f3d0ee485771888d37345c47ad938e", + "s": "0x0c62332a5df97c52b536e7f68d6a1deb255c677f64ea209d4e0411a46cd0de9a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x04", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014" + ], + "v": "0x00", + "r": "0x570d2ab90e8a4496345779ab0f6f7ace2a1d48ebe4df60877bb1b10c62dfbd34", + "s": "0x58b253420cf921bceb8a531e5a22b9fcdb12cb9ba8d2c343a4525e8f0e58b7ec", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x05", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014" + ], + "v": "0x00", + "r": "0x06d628345c1f03ced02445b38d3f0c796a4d041c00b71d1ec77cc1de584141bd", + "s": "0x71aa73d61ff7955dd11fd98d0922c73ec5b8a5e1f60eb906154284c72b64e382", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x5e214032b2c3345807ca43e38d0495d5150729153f66a5536b34fe9f5af98dd7", diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/blobhash_opcode/blobhash_gas_cost.json b/tests/execution-spec-tests/cancun/eip4844_blobs/blobhash_opcode/blobhash_gas_cost.json index c134d6f4faf..914cee72858 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/blobhash_opcode/blobhash_gas_cost.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/blobhash_opcode/blobhash_gas_cost.json @@ -1,7 +1,7 @@ { "000-fork=Cancun-tx_type=0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -492,7 +492,7 @@ }, "001-fork=Cancun-tx_type=1": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -990,7 +990,7 @@ }, "002-fork=Cancun-tx_type=2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1495,7 +1495,7 @@ }, "003-fork=Cancun-tx_type=3": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/blobhash_opcode/blobhash_invalid_blob_index.json b/tests/execution-spec-tests/cancun/eip4844_blobs/blobhash_opcode/blobhash_invalid_blob_index.json index 9f9c96754fd..3f9d4ed1168 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/blobhash_opcode/blobhash_invalid_blob_index.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/blobhash_opcode/blobhash_invalid_blob_index.json @@ -1,7 +1,7 @@ { "000-fork=Cancun-scenario=invalid_calls": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/blobhash_opcode/blobhash_multiple_txs_in_block.json b/tests/execution-spec-tests/cancun/eip4844_blobs/blobhash_opcode/blobhash_multiple_txs_in_block.json index 8193c0936fc..08013193e35 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/blobhash_opcode/blobhash_multiple_txs_in_block.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/blobhash_opcode/blobhash_multiple_txs_in_block.json @@ -1,7 +1,7 @@ { "000-fork=Cancun": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/blobhash_opcode/blobhash_scenarios.json b/tests/execution-spec-tests/cancun/eip4844_blobs/blobhash_opcode/blobhash_scenarios.json index 1122b7564c6..f87f16fca3f 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/blobhash_opcode/blobhash_scenarios.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/blobhash_opcode/blobhash_scenarios.json @@ -1,7 +1,7 @@ { "000-fork=Cancun-scenario=single_valid": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -452,7 +452,7 @@ }, "001-fork=Cancun-scenario=repeated_valid": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -903,7 +903,7 @@ }, "002-fork=Cancun-scenario=valid_invalid": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1354,7 +1354,7 @@ }, "003-fork=Cancun-scenario=varied_valid": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/blobhash_opcode_contexts/blobhash_opcode_contexts.json b/tests/execution-spec-tests/cancun/eip4844_blobs/blobhash_opcode_contexts/blobhash_opcode_contexts.json index 5e34e4e6e5d..d2d54360f0a 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/blobhash_opcode_contexts/blobhash_opcode_contexts.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/blobhash_opcode_contexts/blobhash_opcode_contexts.json @@ -1,7 +1,7 @@ { "000-opcode_context=on_top_level_call_stack-fork=Cancun": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -138,7 +138,7 @@ }, "001-opcode_context=on_max_value-fork=Cancun": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -278,7 +278,7 @@ }, "002-opcode_context=on_CALL-fork=Cancun": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -428,7 +428,7 @@ }, "003-opcode_context=on_DELEGATECALL-fork=Cancun": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -587,7 +587,7 @@ }, "004-opcode_context=on_STATICCALL-fork=Cancun": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -746,7 +746,7 @@ }, "005-opcode_context=on_CALLCODE-fork=Cancun": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -905,7 +905,7 @@ }, "006-opcode_context=on_CREATE-fork=Cancun": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1058,7 +1058,7 @@ }, "007-opcode_context=on_CREATE2-fork=Cancun": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1211,7 +1211,7 @@ }, "008-opcode_context=on_type_2_tx-fork=Cancun": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1342,7 +1342,7 @@ }, "009-opcode_context=on_type_1_tx-fork=Cancun": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1472,7 +1472,7 @@ }, "010-opcode_context=on_type_0_tx-fork=Cancun": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/correct_decreasing_blob_gas_costs.json b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/correct_decreasing_blob_gas_costs.json index 16292e5d729..4ac0455a039 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/correct_decreasing_blob_gas_costs.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/correct_decreasing_blob_gas_costs.json @@ -1,7 +1,7 @@ { "000-fork=Cancun-new_blobs=1-parent_blobs=2-parent_excess_blobs=18-expected_excess_blob_gas:0x220000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -203,7 +203,7 @@ }, "001-fork=Cancun-new_blobs=1-parent_blobs=2-parent_excess_blobs=265-expected_excess_blob_gas:0x2100000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -405,7 +405,7 @@ }, "002-fork=Cancun-new_blobs=1-parent_blobs=2-parent_excess_blobs=565-expected_excess_blob_gas:0x4680000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -607,7 +607,7 @@ }, "003-fork=Cancun-new_blobs=1-parent_blobs=2-parent_excess_blobs=830-expected_excess_blob_gas:0x67a0000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -809,7 +809,7 @@ }, "004-fork=Cancun-new_blobs=1-parent_blobs=2-parent_excess_blobs=1130-expected_excess_blob_gas:0x8d20000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1011,7 +1011,7 @@ }, "005-fork=Cancun-new_blobs=1-parent_blobs=2-parent_excess_blobs=1230-expected_excess_blob_gas:0x99a0000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/correct_excess_blob_gas_calculation.json b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/correct_excess_blob_gas_calculation.json index 1f21ca723f8..89cb1881b97 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/correct_excess_blob_gas_calculation.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/correct_excess_blob_gas_calculation.json @@ -1,7 +1,7 @@ { "000-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=0-expected_excess_blob_gas:0x0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -144,7 +144,7 @@ }, "001-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=1-expected_excess_blob_gas:0x0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -345,7 +345,7 @@ }, "002-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=2-expected_excess_blob_gas:0x0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -547,7 +547,7 @@ }, "003-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=3-expected_excess_blob_gas:0x0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -750,7 +750,7 @@ }, "004-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=4-expected_excess_blob_gas:0x20000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -954,7 +954,7 @@ }, "005-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=5-expected_excess_blob_gas:0x40000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1159,7 +1159,7 @@ }, "006-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=6-expected_excess_blob_gas:0x60000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1365,7 +1365,7 @@ }, "007-fork=Cancun-new_blobs=1-parent_excess_blobs=1-parent_blobs=0-expected_excess_blob_gas:0x0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1508,7 +1508,7 @@ }, "008-fork=Cancun-new_blobs=1-parent_excess_blobs=1-parent_blobs=1-expected_excess_blob_gas:0x0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1709,7 +1709,7 @@ }, "009-fork=Cancun-new_blobs=1-parent_excess_blobs=1-parent_blobs=2-expected_excess_blob_gas:0x0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1911,7 +1911,7 @@ }, "010-fork=Cancun-new_blobs=1-parent_excess_blobs=1-parent_blobs=3-expected_excess_blob_gas:0x20000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2114,7 +2114,7 @@ }, "011-fork=Cancun-new_blobs=1-parent_excess_blobs=1-parent_blobs=4-expected_excess_blob_gas:0x40000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2318,7 +2318,7 @@ }, "012-fork=Cancun-new_blobs=1-parent_excess_blobs=1-parent_blobs=5-expected_excess_blob_gas:0x60000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2523,7 +2523,7 @@ }, "013-fork=Cancun-new_blobs=1-parent_excess_blobs=1-parent_blobs=6-expected_excess_blob_gas:0x80000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2729,7 +2729,7 @@ }, "014-fork=Cancun-new_blobs=1-parent_excess_blobs=2-parent_blobs=0-expected_excess_blob_gas:0x0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2872,7 +2872,7 @@ }, "015-fork=Cancun-new_blobs=1-parent_excess_blobs=2-parent_blobs=1-expected_excess_blob_gas:0x0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -3073,7 +3073,7 @@ }, "016-fork=Cancun-new_blobs=1-parent_excess_blobs=2-parent_blobs=2-expected_excess_blob_gas:0x20000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -3275,7 +3275,7 @@ }, "017-fork=Cancun-new_blobs=1-parent_excess_blobs=2-parent_blobs=3-expected_excess_blob_gas:0x40000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -3478,7 +3478,7 @@ }, "018-fork=Cancun-new_blobs=1-parent_excess_blobs=2-parent_blobs=4-expected_excess_blob_gas:0x60000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -3682,7 +3682,7 @@ }, "019-fork=Cancun-new_blobs=1-parent_excess_blobs=2-parent_blobs=5-expected_excess_blob_gas:0x80000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -3887,7 +3887,7 @@ }, "020-fork=Cancun-new_blobs=1-parent_excess_blobs=2-parent_blobs=6-expected_excess_blob_gas:0xa0000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -4093,7 +4093,7 @@ }, "021-fork=Cancun-new_blobs=1-parent_excess_blobs=3-parent_blobs=0-expected_excess_blob_gas:0x0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -4236,7 +4236,7 @@ }, "022-fork=Cancun-new_blobs=1-parent_excess_blobs=3-parent_blobs=1-expected_excess_blob_gas:0x20000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -4437,7 +4437,7 @@ }, "023-fork=Cancun-new_blobs=1-parent_excess_blobs=3-parent_blobs=2-expected_excess_blob_gas:0x40000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -4639,7 +4639,7 @@ }, "024-fork=Cancun-new_blobs=1-parent_excess_blobs=3-parent_blobs=3-expected_excess_blob_gas:0x60000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -4842,7 +4842,7 @@ }, "025-fork=Cancun-new_blobs=1-parent_excess_blobs=3-parent_blobs=4-expected_excess_blob_gas:0x80000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -5046,7 +5046,7 @@ }, "026-fork=Cancun-new_blobs=1-parent_excess_blobs=3-parent_blobs=5-expected_excess_blob_gas:0xa0000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -5251,7 +5251,7 @@ }, "027-fork=Cancun-new_blobs=1-parent_excess_blobs=3-parent_blobs=6-expected_excess_blob_gas:0xc0000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/correct_increasing_blob_gas_costs.json b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/correct_increasing_blob_gas_costs.json index 37a7c8986a5..b085930f4b7 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/correct_increasing_blob_gas_costs.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/correct_increasing_blob_gas_costs.json @@ -1,7 +1,7 @@ { "000-fork=Cancun-new_blobs=1-parent_blobs=4-parent_excess_blobs=17-expected_excess_blob_gas:0x240000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -205,7 +205,7 @@ }, "001-fork=Cancun-new_blobs=1-parent_blobs=4-parent_excess_blobs=264-expected_excess_blob_gas:0x2120000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -409,7 +409,7 @@ }, "002-fork=Cancun-new_blobs=1-parent_blobs=4-parent_excess_blobs=564-expected_excess_blob_gas:0x46a0000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -613,7 +613,7 @@ }, "003-fork=Cancun-new_blobs=1-parent_blobs=4-parent_excess_blobs=829-expected_excess_blob_gas:0x67c0000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -817,7 +817,7 @@ }, "004-fork=Cancun-new_blobs=1-parent_blobs=4-parent_excess_blobs=1129-expected_excess_blob_gas:0x8d40000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1021,7 +1021,7 @@ }, "005-fork=Cancun-new_blobs=1-parent_blobs=4-parent_excess_blobs=1229-expected_excess_blob_gas:0x99c0000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_blob_gas_used_in_header.json b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_blob_gas_used_in_header.json index a0524443d3b..a18211c7fa4 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_blob_gas_used_in_header.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_blob_gas_used_in_header.json @@ -1,7 +1,7 @@ { "000-fork=Cancun-parent_blobs=0-new_blobs=0-header_blob_gas_used=131072-correct:0x0-header:0x20000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -34,7 +34,51 @@ { "rlp": "0xf902b0f90242a07d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0e06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041a0167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083040000a00000000000000000000000000000000000000000000000000000000000000000f867b86502f8620180800782afc89400000000000000000000000000000000000001000180c080a0fb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663a059001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8bc0c0", "expectException": "invalid blob gas used", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x7d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0xe06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041", + "receiptTrie": "0x167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x11e37d4045ab376876077f0071e7ff1d9495e36b3193f45783a5c7c24d561e64" + }, + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "v": "0x00", + "r": "0xfb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663", + "s": "0x59001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x7d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489", @@ -94,7 +138,7 @@ }, "001-fork=Cancun-parent_blobs=0-new_blobs=0-header_blob_gas_used=262144-correct:0x0-header:0x40000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -127,7 +171,51 @@ { "rlp": "0xf902b0f90242a07d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0e06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041a0167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000083040000a00000000000000000000000000000000000000000000000000000000000000000f867b86502f8620180800782afc89400000000000000000000000000000000000001000180c080a0fb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663a059001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8bc0c0", "expectException": "invalid blob gas used", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x7d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0xe06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041", + "receiptTrie": "0x167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x040000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x3ea508f4a10a39ebec729333a0f5b2b712d559f7effe6dd9f36b0005047650fb" + }, + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "v": "0x00", + "r": "0xfb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663", + "s": "0x59001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x7d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489", @@ -187,7 +275,7 @@ }, "002-fork=Cancun-parent_blobs=0-new_blobs=0-header_blob_gas_used=393216-correct:0x0-header:0x60000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -220,7 +308,51 @@ { "rlp": "0xf902b0f90242a07d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0e06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041a0167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000083040000a00000000000000000000000000000000000000000000000000000000000000000f867b86502f8620180800782afc89400000000000000000000000000000000000001000180c080a0fb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663a059001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8bc0c0", "expectException": "invalid blob gas used", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x7d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0xe06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041", + "receiptTrie": "0x167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x060000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xdf7d55ebf2e507285381568ffb542bb83fec0734747b562dee7619ef54174852" + }, + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "v": "0x00", + "r": "0xfb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663", + "s": "0x59001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x7d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489", @@ -280,7 +412,7 @@ }, "003-fork=Cancun-parent_blobs=0-new_blobs=0-header_blob_gas_used=524288-correct:0x0-header:0x80000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -313,7 +445,51 @@ { "rlp": "0xf902b0f90242a07d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0e06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041a0167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218308000083040000a00000000000000000000000000000000000000000000000000000000000000000f867b86502f8620180800782afc89400000000000000000000000000000000000001000180c080a0fb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663a059001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8bc0c0", "expectException": "invalid blob gas used", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x7d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0xe06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041", + "receiptTrie": "0x167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x080000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe0856cd778321120578ed91ac6e65539b4986a326c66aa7fffde8b308c6e82c6" + }, + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "v": "0x00", + "r": "0xfb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663", + "s": "0x59001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x7d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489", @@ -373,7 +549,7 @@ }, "004-fork=Cancun-parent_blobs=0-new_blobs=0-header_blob_gas_used=655360-correct:0x0-header:0xa0000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -406,7 +582,51 @@ { "rlp": "0xf902b0f90242a07d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0e06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041a0167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a000083040000a00000000000000000000000000000000000000000000000000000000000000000f867b86502f8620180800782afc89400000000000000000000000000000000000001000180c080a0fb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663a059001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8bc0c0", "expectException": "invalid blob gas used", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x7d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0xe06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041", + "receiptTrie": "0x167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0a0000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x2e6a20c980c7e2ec76381b39488b88c6a271b8f8f292d257b4113c746b24b8ba" + }, + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "v": "0x00", + "r": "0xfb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663", + "s": "0x59001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x7d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489", @@ -466,7 +686,7 @@ }, "005-fork=Cancun-parent_blobs=0-new_blobs=0-header_blob_gas_used=786432-correct:0x0-header:0xc0000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -499,7 +719,51 @@ { "rlp": "0xf902b0f90242a07d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0e06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041a0167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000083040000a00000000000000000000000000000000000000000000000000000000000000000f867b86502f8620180800782afc89400000000000000000000000000000000000001000180c080a0fb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663a059001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8bc0c0", "expectException": "invalid blob gas used", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x7d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0xe06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041", + "receiptTrie": "0x167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0c0000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x0e6f236a7b51f2cee329708ccf1f47166290ac9e193ed5f06407932c76b35019" + }, + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "v": "0x00", + "r": "0xfb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663", + "s": "0x59001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x7d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489", @@ -559,7 +823,7 @@ }, "006-fork=Cancun-parent_blobs=0-new_blobs=0-header_blob_gas_used=18446744073709551615-correct:0x0-header:0xffffffffffffffff": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -592,7 +856,51 @@ { "rlp": "0xf902b5f90247a07d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0e06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041a0167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42188ffffffffffffffff83040000a00000000000000000000000000000000000000000000000000000000000000000f867b86502f8620180800782afc89400000000000000000000000000000000000001000180c080a0fb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663a059001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8bc0c0", "expectException": "invalid blob gas used", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x7d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0xe06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041", + "receiptTrie": "0x167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0xffffffffffffffff", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x5ef2c8ade01c33eda8cc654220f1e07cd7f8b0f63d76d35aea2732d509ca19d4" + }, + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "v": "0x00", + "r": "0xfb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663", + "s": "0x59001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x7d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489", @@ -652,7 +960,7 @@ }, "007-fork=Cancun-parent_blobs=0-new_blobs=1-header_blob_gas_used=0-correct:0x20000-header:0x0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -685,7 +993,55 @@ { "rlp": "0xf902d0f9023fa05ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083040000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid blob gas used", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x3f0449f917504fea7502a243dd8211ec3fd24d33c55e4973127ab9dfeb7c2b38" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2", @@ -745,7 +1101,7 @@ }, "008-fork=Cancun-parent_blobs=0-new_blobs=1-header_blob_gas_used=262144-correct:0x20000-header:0x40000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -778,7 +1134,55 @@ { "rlp": "0xf902d3f90242a05ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000083040000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid blob gas used", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x040000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xb97f29007c81d67f5ed812d56733a9f24e2e0b8a94aaf836fc8a98e50f45187d" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2", @@ -838,7 +1242,7 @@ }, "009-fork=Cancun-parent_blobs=0-new_blobs=1-header_blob_gas_used=393216-correct:0x20000-header:0x60000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -871,7 +1275,55 @@ { "rlp": "0xf902d3f90242a05ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000083040000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid blob gas used", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x060000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x4a2aefa4e10d267493c5036ebf41e4f41b359a8549b707904962a18facadd3ce" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2", @@ -931,7 +1383,7 @@ }, "010-fork=Cancun-parent_blobs=0-new_blobs=1-header_blob_gas_used=524288-correct:0x20000-header:0x80000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -964,7 +1416,55 @@ { "rlp": "0xf902d3f90242a05ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218308000083040000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid blob gas used", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x080000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x5900121f6485cc0fed8b608ad39aa97b89a5c830f52b13b06829dc9b07946c22" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2", @@ -1024,7 +1524,7 @@ }, "011-fork=Cancun-parent_blobs=0-new_blobs=1-header_blob_gas_used=655360-correct:0x20000-header:0xa0000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1057,7 +1557,55 @@ { "rlp": "0xf902d3f90242a05ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a000083040000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid blob gas used", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0a0000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x27b24bfba48bfaaff6432f16e93d41bf7fcc05f75bc2dc35de4d9bebbf09c7f8" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2", @@ -1117,7 +1665,7 @@ }, "012-fork=Cancun-parent_blobs=0-new_blobs=1-header_blob_gas_used=786432-correct:0x20000-header:0xc0000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1150,7 +1698,55 @@ { "rlp": "0xf902d3f90242a05ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000083040000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid blob gas used", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0c0000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x53ca291f9c98809b7257367c554f93ad46a63e24d7b92441ee541f06d4ad7640" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2", @@ -1210,7 +1806,7 @@ }, "013-fork=Cancun-parent_blobs=0-new_blobs=1-header_blob_gas_used=18446744073709551615-correct:0x20000-header:0xffffffffffffffff": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1243,7 +1839,55 @@ { "rlp": "0xf902d8f90247a05ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42188ffffffffffffffff83040000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid blob gas used", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0xffffffffffffffff", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x9591ed433cebbf13b7861561feafcaf4ee12c941c851dc5180716bb9e8c8d5da" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2", @@ -1303,7 +1947,7 @@ }, "014-fork=Cancun-parent_blobs=0-new_blobs=2-header_blob_gas_used=0-correct:0x40000-header:0x0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1336,7 +1980,56 @@ { "rlp": "0xf902f2f9023fa0571b1f7cf38b8149867618e6e523a39744b6c23535e629952fcc1dd81beb8fc1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0eae9042723c64312515c4e9612a0d71e7c1880d25f7145345f5a0a389ad3e6c2a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083040000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a70180800782afc89400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a025a32181e123cb9a3c7c3053a8e27bded73e738a16a5a1f2912396c0124b6aa6a02242ac81eb2690b5c52c834e084a97db7b8ed67ccb3080a945e0f60773f2e7d6c0c0", "expectException": "invalid blob gas used", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x571b1f7cf38b8149867618e6e523a39744b6c23535e629952fcc1dd81beb8fc1", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0xeae9042723c64312515c4e9612a0d71e7c1880d25f7145345f5a0a389ad3e6c2", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x32f573b9fc5957adc516640a71bb386370861c17f3c267d829ec3f42e935a34b" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x01", + "r": "0x25a32181e123cb9a3c7c3053a8e27bded73e738a16a5a1f2912396c0124b6aa6", + "s": "0x2242ac81eb2690b5c52c834e084a97db7b8ed67ccb3080a945e0f60773f2e7d6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x571b1f7cf38b8149867618e6e523a39744b6c23535e629952fcc1dd81beb8fc1", @@ -1396,7 +2089,7 @@ }, "015-fork=Cancun-parent_blobs=0-new_blobs=2-header_blob_gas_used=131072-correct:0x40000-header:0x20000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1429,7 +2122,56 @@ { "rlp": "0xf902f5f90242a0571b1f7cf38b8149867618e6e523a39744b6c23535e629952fcc1dd81beb8fc1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0eae9042723c64312515c4e9612a0d71e7c1880d25f7145345f5a0a389ad3e6c2a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083040000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a70180800782afc89400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a025a32181e123cb9a3c7c3053a8e27bded73e738a16a5a1f2912396c0124b6aa6a02242ac81eb2690b5c52c834e084a97db7b8ed67ccb3080a945e0f60773f2e7d6c0c0", "expectException": "invalid blob gas used", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x571b1f7cf38b8149867618e6e523a39744b6c23535e629952fcc1dd81beb8fc1", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0xeae9042723c64312515c4e9612a0d71e7c1880d25f7145345f5a0a389ad3e6c2", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x40ef8637a753e8ae589aeff7b1b323fee0d191368f16106bfdc769bb90c6808f" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x01", + "r": "0x25a32181e123cb9a3c7c3053a8e27bded73e738a16a5a1f2912396c0124b6aa6", + "s": "0x2242ac81eb2690b5c52c834e084a97db7b8ed67ccb3080a945e0f60773f2e7d6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x571b1f7cf38b8149867618e6e523a39744b6c23535e629952fcc1dd81beb8fc1", @@ -1489,7 +2231,7 @@ }, "016-fork=Cancun-parent_blobs=0-new_blobs=2-header_blob_gas_used=393216-correct:0x40000-header:0x60000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1522,7 +2264,56 @@ { "rlp": "0xf902f5f90242a0571b1f7cf38b8149867618e6e523a39744b6c23535e629952fcc1dd81beb8fc1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0eae9042723c64312515c4e9612a0d71e7c1880d25f7145345f5a0a389ad3e6c2a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000083040000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a70180800782afc89400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a025a32181e123cb9a3c7c3053a8e27bded73e738a16a5a1f2912396c0124b6aa6a02242ac81eb2690b5c52c834e084a97db7b8ed67ccb3080a945e0f60773f2e7d6c0c0", "expectException": "invalid blob gas used", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x571b1f7cf38b8149867618e6e523a39744b6c23535e629952fcc1dd81beb8fc1", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0xeae9042723c64312515c4e9612a0d71e7c1880d25f7145345f5a0a389ad3e6c2", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x060000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xc4ca9f95873898193d07571bcfff9edbd353c5b54a3e0571fec5d839020948ab" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x01", + "r": "0x25a32181e123cb9a3c7c3053a8e27bded73e738a16a5a1f2912396c0124b6aa6", + "s": "0x2242ac81eb2690b5c52c834e084a97db7b8ed67ccb3080a945e0f60773f2e7d6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x571b1f7cf38b8149867618e6e523a39744b6c23535e629952fcc1dd81beb8fc1", @@ -1582,7 +2373,7 @@ }, "017-fork=Cancun-parent_blobs=0-new_blobs=2-header_blob_gas_used=524288-correct:0x40000-header:0x80000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1615,7 +2406,56 @@ { "rlp": "0xf902f5f90242a0571b1f7cf38b8149867618e6e523a39744b6c23535e629952fcc1dd81beb8fc1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0eae9042723c64312515c4e9612a0d71e7c1880d25f7145345f5a0a389ad3e6c2a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218308000083040000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a70180800782afc89400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a025a32181e123cb9a3c7c3053a8e27bded73e738a16a5a1f2912396c0124b6aa6a02242ac81eb2690b5c52c834e084a97db7b8ed67ccb3080a945e0f60773f2e7d6c0c0", "expectException": "invalid blob gas used", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x571b1f7cf38b8149867618e6e523a39744b6c23535e629952fcc1dd81beb8fc1", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0xeae9042723c64312515c4e9612a0d71e7c1880d25f7145345f5a0a389ad3e6c2", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x080000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x283b3de64ca6a55f4f07fee8ee82eef6786aff269f08c8648c9a7d2fabc596c2" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x01", + "r": "0x25a32181e123cb9a3c7c3053a8e27bded73e738a16a5a1f2912396c0124b6aa6", + "s": "0x2242ac81eb2690b5c52c834e084a97db7b8ed67ccb3080a945e0f60773f2e7d6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x571b1f7cf38b8149867618e6e523a39744b6c23535e629952fcc1dd81beb8fc1", @@ -1675,7 +2515,7 @@ }, "018-fork=Cancun-parent_blobs=0-new_blobs=2-header_blob_gas_used=655360-correct:0x40000-header:0xa0000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1708,7 +2548,56 @@ { "rlp": "0xf902f5f90242a0571b1f7cf38b8149867618e6e523a39744b6c23535e629952fcc1dd81beb8fc1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0eae9042723c64312515c4e9612a0d71e7c1880d25f7145345f5a0a389ad3e6c2a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a000083040000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a70180800782afc89400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a025a32181e123cb9a3c7c3053a8e27bded73e738a16a5a1f2912396c0124b6aa6a02242ac81eb2690b5c52c834e084a97db7b8ed67ccb3080a945e0f60773f2e7d6c0c0", "expectException": "invalid blob gas used", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x571b1f7cf38b8149867618e6e523a39744b6c23535e629952fcc1dd81beb8fc1", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0xeae9042723c64312515c4e9612a0d71e7c1880d25f7145345f5a0a389ad3e6c2", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0a0000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xc0ba4b9f623ba3f3c024ba4d0390e202f6cef9df34510b9d6d88ea354160d06c" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x01", + "r": "0x25a32181e123cb9a3c7c3053a8e27bded73e738a16a5a1f2912396c0124b6aa6", + "s": "0x2242ac81eb2690b5c52c834e084a97db7b8ed67ccb3080a945e0f60773f2e7d6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x571b1f7cf38b8149867618e6e523a39744b6c23535e629952fcc1dd81beb8fc1", @@ -1768,7 +2657,7 @@ }, "019-fork=Cancun-parent_blobs=0-new_blobs=2-header_blob_gas_used=786432-correct:0x40000-header:0xc0000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1801,7 +2690,56 @@ { "rlp": "0xf902f5f90242a0571b1f7cf38b8149867618e6e523a39744b6c23535e629952fcc1dd81beb8fc1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0eae9042723c64312515c4e9612a0d71e7c1880d25f7145345f5a0a389ad3e6c2a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000083040000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a70180800782afc89400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a025a32181e123cb9a3c7c3053a8e27bded73e738a16a5a1f2912396c0124b6aa6a02242ac81eb2690b5c52c834e084a97db7b8ed67ccb3080a945e0f60773f2e7d6c0c0", "expectException": "invalid blob gas used", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x571b1f7cf38b8149867618e6e523a39744b6c23535e629952fcc1dd81beb8fc1", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0xeae9042723c64312515c4e9612a0d71e7c1880d25f7145345f5a0a389ad3e6c2", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0c0000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xff225aec675f9b4ce74300d5b5208f796a9a89799ba98df6a40f332440fea24c" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x01", + "r": "0x25a32181e123cb9a3c7c3053a8e27bded73e738a16a5a1f2912396c0124b6aa6", + "s": "0x2242ac81eb2690b5c52c834e084a97db7b8ed67ccb3080a945e0f60773f2e7d6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x571b1f7cf38b8149867618e6e523a39744b6c23535e629952fcc1dd81beb8fc1", @@ -1861,7 +2799,7 @@ }, "020-fork=Cancun-parent_blobs=0-new_blobs=2-header_blob_gas_used=18446744073709551615-correct:0x40000-header:0xffffffffffffffff": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1894,7 +2832,56 @@ { "rlp": "0xf902faf90247a0571b1f7cf38b8149867618e6e523a39744b6c23535e629952fcc1dd81beb8fc1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0eae9042723c64312515c4e9612a0d71e7c1880d25f7145345f5a0a389ad3e6c2a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42188ffffffffffffffff83040000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a70180800782afc89400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a025a32181e123cb9a3c7c3053a8e27bded73e738a16a5a1f2912396c0124b6aa6a02242ac81eb2690b5c52c834e084a97db7b8ed67ccb3080a945e0f60773f2e7d6c0c0", "expectException": "invalid blob gas used", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x571b1f7cf38b8149867618e6e523a39744b6c23535e629952fcc1dd81beb8fc1", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0xeae9042723c64312515c4e9612a0d71e7c1880d25f7145345f5a0a389ad3e6c2", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0xffffffffffffffff", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x2c1b06f96eaee578188b34394577cc111936d176289dbb231ae5e3ce91ba3695" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x01", + "r": "0x25a32181e123cb9a3c7c3053a8e27bded73e738a16a5a1f2912396c0124b6aa6", + "s": "0x2242ac81eb2690b5c52c834e084a97db7b8ed67ccb3080a945e0f60773f2e7d6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x571b1f7cf38b8149867618e6e523a39744b6c23535e629952fcc1dd81beb8fc1", @@ -1954,7 +2941,7 @@ }, "021-fork=Cancun-parent_blobs=0-new_blobs=3-header_blob_gas_used=0-correct:0x60000-header:0x0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1987,7 +2974,57 @@ { "rlp": "0xf90313f9023fa0b312424fa36d8b8e36e9ced3f542c3908313b381877a22485ac76c6ffe908048a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0164e121ca927a187d7cbf671b36aa28ba50660f4a4da2036e0df0596734b8e86a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083040000a00000000000000000000000000000000000000000000000000000000000000000f8cdb8cb03f8c80180800782afc89400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0a2a91b27020be671eb502d5cc84e771c0412416a41c2fc64debbbd827b2ba363a052efeeb1ce7509caf690d9ad89fe9f5c63334a5e6083f134278ee027aed559a2c0c0", "expectException": "invalid blob gas used", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xb312424fa36d8b8e36e9ced3f542c3908313b381877a22485ac76c6ffe908048", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x164e121ca927a187d7cbf671b36aa28ba50660f4a4da2036e0df0596734b8e86", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x55a27bddc837faef8aa47d7667cfee24e986cf6209123676f20243305a40c8a5" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x01", + "r": "0xa2a91b27020be671eb502d5cc84e771c0412416a41c2fc64debbbd827b2ba363", + "s": "0x52efeeb1ce7509caf690d9ad89fe9f5c63334a5e6083f134278ee027aed559a2", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xb312424fa36d8b8e36e9ced3f542c3908313b381877a22485ac76c6ffe908048", @@ -2047,7 +3084,7 @@ }, "022-fork=Cancun-parent_blobs=0-new_blobs=3-header_blob_gas_used=131072-correct:0x60000-header:0x20000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2080,7 +3117,57 @@ { "rlp": "0xf90316f90242a0b312424fa36d8b8e36e9ced3f542c3908313b381877a22485ac76c6ffe908048a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0164e121ca927a187d7cbf671b36aa28ba50660f4a4da2036e0df0596734b8e86a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083040000a00000000000000000000000000000000000000000000000000000000000000000f8cdb8cb03f8c80180800782afc89400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0a2a91b27020be671eb502d5cc84e771c0412416a41c2fc64debbbd827b2ba363a052efeeb1ce7509caf690d9ad89fe9f5c63334a5e6083f134278ee027aed559a2c0c0", "expectException": "invalid blob gas used", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xb312424fa36d8b8e36e9ced3f542c3908313b381877a22485ac76c6ffe908048", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x164e121ca927a187d7cbf671b36aa28ba50660f4a4da2036e0df0596734b8e86", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x5157f47c3f000dcb6ff56e9d908c7f3f6796efcc49cfbacae71ce86630f8a2f8" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x01", + "r": "0xa2a91b27020be671eb502d5cc84e771c0412416a41c2fc64debbbd827b2ba363", + "s": "0x52efeeb1ce7509caf690d9ad89fe9f5c63334a5e6083f134278ee027aed559a2", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xb312424fa36d8b8e36e9ced3f542c3908313b381877a22485ac76c6ffe908048", @@ -2140,7 +3227,7 @@ }, "023-fork=Cancun-parent_blobs=0-new_blobs=3-header_blob_gas_used=262144-correct:0x60000-header:0x40000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2173,7 +3260,57 @@ { "rlp": "0xf90316f90242a0b312424fa36d8b8e36e9ced3f542c3908313b381877a22485ac76c6ffe908048a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0164e121ca927a187d7cbf671b36aa28ba50660f4a4da2036e0df0596734b8e86a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000083040000a00000000000000000000000000000000000000000000000000000000000000000f8cdb8cb03f8c80180800782afc89400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0a2a91b27020be671eb502d5cc84e771c0412416a41c2fc64debbbd827b2ba363a052efeeb1ce7509caf690d9ad89fe9f5c63334a5e6083f134278ee027aed559a2c0c0", "expectException": "invalid blob gas used", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xb312424fa36d8b8e36e9ced3f542c3908313b381877a22485ac76c6ffe908048", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x164e121ca927a187d7cbf671b36aa28ba50660f4a4da2036e0df0596734b8e86", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x040000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x3f731dd7f158672f564c7a6152006bc24e9b955f2a5422965c051702e664976b" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x01", + "r": "0xa2a91b27020be671eb502d5cc84e771c0412416a41c2fc64debbbd827b2ba363", + "s": "0x52efeeb1ce7509caf690d9ad89fe9f5c63334a5e6083f134278ee027aed559a2", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xb312424fa36d8b8e36e9ced3f542c3908313b381877a22485ac76c6ffe908048", @@ -2233,7 +3370,7 @@ }, "024-fork=Cancun-parent_blobs=0-new_blobs=3-header_blob_gas_used=524288-correct:0x60000-header:0x80000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2266,7 +3403,57 @@ { "rlp": "0xf90316f90242a0b312424fa36d8b8e36e9ced3f542c3908313b381877a22485ac76c6ffe908048a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0164e121ca927a187d7cbf671b36aa28ba50660f4a4da2036e0df0596734b8e86a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218308000083040000a00000000000000000000000000000000000000000000000000000000000000000f8cdb8cb03f8c80180800782afc89400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0a2a91b27020be671eb502d5cc84e771c0412416a41c2fc64debbbd827b2ba363a052efeeb1ce7509caf690d9ad89fe9f5c63334a5e6083f134278ee027aed559a2c0c0", "expectException": "invalid blob gas used", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xb312424fa36d8b8e36e9ced3f542c3908313b381877a22485ac76c6ffe908048", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x164e121ca927a187d7cbf671b36aa28ba50660f4a4da2036e0df0596734b8e86", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x080000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xc14333b4f96ce77d5a5456a2e59c0c66d4c88c09d236fb744b49fd47c9e137ce" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x01", + "r": "0xa2a91b27020be671eb502d5cc84e771c0412416a41c2fc64debbbd827b2ba363", + "s": "0x52efeeb1ce7509caf690d9ad89fe9f5c63334a5e6083f134278ee027aed559a2", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xb312424fa36d8b8e36e9ced3f542c3908313b381877a22485ac76c6ffe908048", @@ -2326,7 +3513,7 @@ }, "025-fork=Cancun-parent_blobs=0-new_blobs=3-header_blob_gas_used=655360-correct:0x60000-header:0xa0000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2359,7 +3546,57 @@ { "rlp": "0xf90316f90242a0b312424fa36d8b8e36e9ced3f542c3908313b381877a22485ac76c6ffe908048a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0164e121ca927a187d7cbf671b36aa28ba50660f4a4da2036e0df0596734b8e86a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a000083040000a00000000000000000000000000000000000000000000000000000000000000000f8cdb8cb03f8c80180800782afc89400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0a2a91b27020be671eb502d5cc84e771c0412416a41c2fc64debbbd827b2ba363a052efeeb1ce7509caf690d9ad89fe9f5c63334a5e6083f134278ee027aed559a2c0c0", "expectException": "invalid blob gas used", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xb312424fa36d8b8e36e9ced3f542c3908313b381877a22485ac76c6ffe908048", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x164e121ca927a187d7cbf671b36aa28ba50660f4a4da2036e0df0596734b8e86", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0a0000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xb6a646f5e81d484b0f7cffa6945dc0fb7fe2f33d6b11b5db2432654b924bcf17" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x01", + "r": "0xa2a91b27020be671eb502d5cc84e771c0412416a41c2fc64debbbd827b2ba363", + "s": "0x52efeeb1ce7509caf690d9ad89fe9f5c63334a5e6083f134278ee027aed559a2", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xb312424fa36d8b8e36e9ced3f542c3908313b381877a22485ac76c6ffe908048", @@ -2419,7 +3656,7 @@ }, "026-fork=Cancun-parent_blobs=0-new_blobs=3-header_blob_gas_used=786432-correct:0x60000-header:0xc0000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2452,7 +3689,57 @@ { "rlp": "0xf90316f90242a0b312424fa36d8b8e36e9ced3f542c3908313b381877a22485ac76c6ffe908048a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0164e121ca927a187d7cbf671b36aa28ba50660f4a4da2036e0df0596734b8e86a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000083040000a00000000000000000000000000000000000000000000000000000000000000000f8cdb8cb03f8c80180800782afc89400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0a2a91b27020be671eb502d5cc84e771c0412416a41c2fc64debbbd827b2ba363a052efeeb1ce7509caf690d9ad89fe9f5c63334a5e6083f134278ee027aed559a2c0c0", "expectException": "invalid blob gas used", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xb312424fa36d8b8e36e9ced3f542c3908313b381877a22485ac76c6ffe908048", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x164e121ca927a187d7cbf671b36aa28ba50660f4a4da2036e0df0596734b8e86", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0c0000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xc3bad586ddc0340d805aa9b1a5f97330952ef7a3948fbf9e146676225236806d" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x01", + "r": "0xa2a91b27020be671eb502d5cc84e771c0412416a41c2fc64debbbd827b2ba363", + "s": "0x52efeeb1ce7509caf690d9ad89fe9f5c63334a5e6083f134278ee027aed559a2", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xb312424fa36d8b8e36e9ced3f542c3908313b381877a22485ac76c6ffe908048", @@ -2512,7 +3799,7 @@ }, "027-fork=Cancun-parent_blobs=0-new_blobs=3-header_blob_gas_used=18446744073709551615-correct:0x60000-header:0xffffffffffffffff": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2545,7 +3832,57 @@ { "rlp": "0xf9031bf90247a0b312424fa36d8b8e36e9ced3f542c3908313b381877a22485ac76c6ffe908048a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0164e121ca927a187d7cbf671b36aa28ba50660f4a4da2036e0df0596734b8e86a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42188ffffffffffffffff83040000a00000000000000000000000000000000000000000000000000000000000000000f8cdb8cb03f8c80180800782afc89400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0a2a91b27020be671eb502d5cc84e771c0412416a41c2fc64debbbd827b2ba363a052efeeb1ce7509caf690d9ad89fe9f5c63334a5e6083f134278ee027aed559a2c0c0", "expectException": "invalid blob gas used", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xb312424fa36d8b8e36e9ced3f542c3908313b381877a22485ac76c6ffe908048", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x164e121ca927a187d7cbf671b36aa28ba50660f4a4da2036e0df0596734b8e86", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0xffffffffffffffff", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xf426be13bc5c813ab7060b838af68178056f07f7019ed3ad8a5cfb46e5152173" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x01", + "r": "0xa2a91b27020be671eb502d5cc84e771c0412416a41c2fc64debbbd827b2ba363", + "s": "0x52efeeb1ce7509caf690d9ad89fe9f5c63334a5e6083f134278ee027aed559a2", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xb312424fa36d8b8e36e9ced3f542c3908313b381877a22485ac76c6ffe908048", @@ -2605,7 +3942,7 @@ }, "028-fork=Cancun-parent_blobs=0-new_blobs=4-header_blob_gas_used=0-correct:0x80000-header:0x0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2638,7 +3975,58 @@ { "rlp": "0xf90334f9023fa07b655b3dfdcd8b1b0633955ab90eba54c6ff20d8bb324c108c900efa77643799a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca08f6acd7079646ecd5cc4706752d22cd611201d82afbd34ed112dc5cdd399bd30a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083040000a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e90180800782afc89400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000380a006ed1e3d67f1be5a4b57eb2bfceb39c011dabf91574241011e1e5e9cb0b38171a04d4ce894d9065d7bd55b88b5e46978b26b5b13adfa2d204ca6321ea64d5b772ec0c0", "expectException": "invalid blob gas used", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x7b655b3dfdcd8b1b0633955ab90eba54c6ff20d8bb324c108c900efa77643799", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x8f6acd7079646ecd5cc4706752d22cd611201d82afbd34ed112dc5cdd399bd30", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xddc3ae0988d870acec8a468a47150f725d8f48e75e3e75293575c1ad4e070a27" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003" + ], + "v": "0x00", + "r": "0x06ed1e3d67f1be5a4b57eb2bfceb39c011dabf91574241011e1e5e9cb0b38171", + "s": "0x4d4ce894d9065d7bd55b88b5e46978b26b5b13adfa2d204ca6321ea64d5b772e", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x7b655b3dfdcd8b1b0633955ab90eba54c6ff20d8bb324c108c900efa77643799", @@ -2698,7 +4086,7 @@ }, "029-fork=Cancun-parent_blobs=0-new_blobs=4-header_blob_gas_used=131072-correct:0x80000-header:0x20000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2731,7 +4119,58 @@ { "rlp": "0xf90337f90242a07b655b3dfdcd8b1b0633955ab90eba54c6ff20d8bb324c108c900efa77643799a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca08f6acd7079646ecd5cc4706752d22cd611201d82afbd34ed112dc5cdd399bd30a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083040000a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e90180800782afc89400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000380a006ed1e3d67f1be5a4b57eb2bfceb39c011dabf91574241011e1e5e9cb0b38171a04d4ce894d9065d7bd55b88b5e46978b26b5b13adfa2d204ca6321ea64d5b772ec0c0", "expectException": "invalid blob gas used", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x7b655b3dfdcd8b1b0633955ab90eba54c6ff20d8bb324c108c900efa77643799", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x8f6acd7079646ecd5cc4706752d22cd611201d82afbd34ed112dc5cdd399bd30", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x3600e4ff4bc0514b24133ca26c152a841357c59012c3e86ac143049676ac6064" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003" + ], + "v": "0x00", + "r": "0x06ed1e3d67f1be5a4b57eb2bfceb39c011dabf91574241011e1e5e9cb0b38171", + "s": "0x4d4ce894d9065d7bd55b88b5e46978b26b5b13adfa2d204ca6321ea64d5b772e", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x7b655b3dfdcd8b1b0633955ab90eba54c6ff20d8bb324c108c900efa77643799", @@ -2791,7 +4230,7 @@ }, "030-fork=Cancun-parent_blobs=0-new_blobs=4-header_blob_gas_used=262144-correct:0x80000-header:0x40000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2824,7 +4263,58 @@ { "rlp": "0xf90337f90242a07b655b3dfdcd8b1b0633955ab90eba54c6ff20d8bb324c108c900efa77643799a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca08f6acd7079646ecd5cc4706752d22cd611201d82afbd34ed112dc5cdd399bd30a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000083040000a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e90180800782afc89400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000380a006ed1e3d67f1be5a4b57eb2bfceb39c011dabf91574241011e1e5e9cb0b38171a04d4ce894d9065d7bd55b88b5e46978b26b5b13adfa2d204ca6321ea64d5b772ec0c0", "expectException": "invalid blob gas used", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x7b655b3dfdcd8b1b0633955ab90eba54c6ff20d8bb324c108c900efa77643799", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x8f6acd7079646ecd5cc4706752d22cd611201d82afbd34ed112dc5cdd399bd30", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x040000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x9d3bce6613b4d863376d052c116b181740539c3b7d5979ab059392bac623a892" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003" + ], + "v": "0x00", + "r": "0x06ed1e3d67f1be5a4b57eb2bfceb39c011dabf91574241011e1e5e9cb0b38171", + "s": "0x4d4ce894d9065d7bd55b88b5e46978b26b5b13adfa2d204ca6321ea64d5b772e", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x7b655b3dfdcd8b1b0633955ab90eba54c6ff20d8bb324c108c900efa77643799", @@ -2884,7 +4374,7 @@ }, "031-fork=Cancun-parent_blobs=0-new_blobs=4-header_blob_gas_used=393216-correct:0x80000-header:0x60000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2917,7 +4407,58 @@ { "rlp": "0xf90337f90242a07b655b3dfdcd8b1b0633955ab90eba54c6ff20d8bb324c108c900efa77643799a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca08f6acd7079646ecd5cc4706752d22cd611201d82afbd34ed112dc5cdd399bd30a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000083040000a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e90180800782afc89400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000380a006ed1e3d67f1be5a4b57eb2bfceb39c011dabf91574241011e1e5e9cb0b38171a04d4ce894d9065d7bd55b88b5e46978b26b5b13adfa2d204ca6321ea64d5b772ec0c0", "expectException": "invalid blob gas used", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x7b655b3dfdcd8b1b0633955ab90eba54c6ff20d8bb324c108c900efa77643799", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x8f6acd7079646ecd5cc4706752d22cd611201d82afbd34ed112dc5cdd399bd30", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x060000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x24bbdd5b1d17a1c4e12aa7e91b856002b4194aabc8c81abd64b72eab829ea728" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003" + ], + "v": "0x00", + "r": "0x06ed1e3d67f1be5a4b57eb2bfceb39c011dabf91574241011e1e5e9cb0b38171", + "s": "0x4d4ce894d9065d7bd55b88b5e46978b26b5b13adfa2d204ca6321ea64d5b772e", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x7b655b3dfdcd8b1b0633955ab90eba54c6ff20d8bb324c108c900efa77643799", @@ -2977,7 +4518,7 @@ }, "032-fork=Cancun-parent_blobs=0-new_blobs=4-header_blob_gas_used=655360-correct:0x80000-header:0xa0000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -3010,7 +4551,58 @@ { "rlp": "0xf90337f90242a07b655b3dfdcd8b1b0633955ab90eba54c6ff20d8bb324c108c900efa77643799a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca08f6acd7079646ecd5cc4706752d22cd611201d82afbd34ed112dc5cdd399bd30a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a000083040000a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e90180800782afc89400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000380a006ed1e3d67f1be5a4b57eb2bfceb39c011dabf91574241011e1e5e9cb0b38171a04d4ce894d9065d7bd55b88b5e46978b26b5b13adfa2d204ca6321ea64d5b772ec0c0", "expectException": "invalid blob gas used", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x7b655b3dfdcd8b1b0633955ab90eba54c6ff20d8bb324c108c900efa77643799", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x8f6acd7079646ecd5cc4706752d22cd611201d82afbd34ed112dc5cdd399bd30", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0a0000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x1053c2c39e39939e51173395033aec8f56db8b5b426980c1fe9235fe436e306c" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003" + ], + "v": "0x00", + "r": "0x06ed1e3d67f1be5a4b57eb2bfceb39c011dabf91574241011e1e5e9cb0b38171", + "s": "0x4d4ce894d9065d7bd55b88b5e46978b26b5b13adfa2d204ca6321ea64d5b772e", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x7b655b3dfdcd8b1b0633955ab90eba54c6ff20d8bb324c108c900efa77643799", @@ -3070,7 +4662,7 @@ }, "033-fork=Cancun-parent_blobs=0-new_blobs=4-header_blob_gas_used=786432-correct:0x80000-header:0xc0000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -3103,7 +4695,58 @@ { "rlp": "0xf90337f90242a07b655b3dfdcd8b1b0633955ab90eba54c6ff20d8bb324c108c900efa77643799a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca08f6acd7079646ecd5cc4706752d22cd611201d82afbd34ed112dc5cdd399bd30a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000083040000a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e90180800782afc89400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000380a006ed1e3d67f1be5a4b57eb2bfceb39c011dabf91574241011e1e5e9cb0b38171a04d4ce894d9065d7bd55b88b5e46978b26b5b13adfa2d204ca6321ea64d5b772ec0c0", "expectException": "invalid blob gas used", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x7b655b3dfdcd8b1b0633955ab90eba54c6ff20d8bb324c108c900efa77643799", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x8f6acd7079646ecd5cc4706752d22cd611201d82afbd34ed112dc5cdd399bd30", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0c0000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x1d5132fba3d9f48c455d0f686fab768f8cc2fc2d4a3ab706834c33cbeef3950b" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003" + ], + "v": "0x00", + "r": "0x06ed1e3d67f1be5a4b57eb2bfceb39c011dabf91574241011e1e5e9cb0b38171", + "s": "0x4d4ce894d9065d7bd55b88b5e46978b26b5b13adfa2d204ca6321ea64d5b772e", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x7b655b3dfdcd8b1b0633955ab90eba54c6ff20d8bb324c108c900efa77643799", @@ -3163,7 +4806,7 @@ }, "034-fork=Cancun-parent_blobs=0-new_blobs=4-header_blob_gas_used=18446744073709551615-correct:0x80000-header:0xffffffffffffffff": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -3196,7 +4839,58 @@ { "rlp": "0xf9033cf90247a07b655b3dfdcd8b1b0633955ab90eba54c6ff20d8bb324c108c900efa77643799a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca08f6acd7079646ecd5cc4706752d22cd611201d82afbd34ed112dc5cdd399bd30a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42188ffffffffffffffff83040000a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e90180800782afc89400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000380a006ed1e3d67f1be5a4b57eb2bfceb39c011dabf91574241011e1e5e9cb0b38171a04d4ce894d9065d7bd55b88b5e46978b26b5b13adfa2d204ca6321ea64d5b772ec0c0", "expectException": "invalid blob gas used", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x7b655b3dfdcd8b1b0633955ab90eba54c6ff20d8bb324c108c900efa77643799", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x8f6acd7079646ecd5cc4706752d22cd611201d82afbd34ed112dc5cdd399bd30", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0xffffffffffffffff", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa8a369d636f7b49c9a44f006754611f488ee590e31dffbae5c52d5933910d660" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003" + ], + "v": "0x00", + "r": "0x06ed1e3d67f1be5a4b57eb2bfceb39c011dabf91574241011e1e5e9cb0b38171", + "s": "0x4d4ce894d9065d7bd55b88b5e46978b26b5b13adfa2d204ca6321ea64d5b772e", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x7b655b3dfdcd8b1b0633955ab90eba54c6ff20d8bb324c108c900efa77643799", @@ -3256,7 +4950,7 @@ }, "035-fork=Cancun-parent_blobs=0-new_blobs=5-header_blob_gas_used=0-correct:0xa0000-header:0x0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -3289,7 +4983,59 @@ { "rlp": "0xf90358f9023fa0db2f72d281fe090653811fdd031bea343ba6f83fc1e36191a9098684e1078d64a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca020f36c013e61ffbbb870fd5037691af27e276382fb0790a2568a9b70a660f695a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083040000a00000000000000000000000000000000000000000000000000000000000000000f90111b9010e03f9010a0180800782afc89400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a0ddcf2d9ad185ba2bc91a992e59bd49a8bf21c9c6c545e62f313fd05ce54d87f8a02150c7eb893380d15bdb85a821c0bbfd83e2e8e17c5bd579740fa17903881c6dc0c0", "expectException": "invalid blob gas used", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xdb2f72d281fe090653811fdd031bea343ba6f83fc1e36191a9098684e1078d64", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x20f36c013e61ffbbb870fd5037691af27e276382fb0790a2568a9b70a660f695", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x4e45185e13d71637b6d7488cae82c12373cf37942b6ecc67e92bda0f10435e27" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003", + "0x0100000000000000000000000000000000000000000000000000000000000004" + ], + "v": "0x01", + "r": "0xddcf2d9ad185ba2bc91a992e59bd49a8bf21c9c6c545e62f313fd05ce54d87f8", + "s": "0x2150c7eb893380d15bdb85a821c0bbfd83e2e8e17c5bd579740fa17903881c6d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xdb2f72d281fe090653811fdd031bea343ba6f83fc1e36191a9098684e1078d64", @@ -3349,7 +5095,7 @@ }, "036-fork=Cancun-parent_blobs=0-new_blobs=5-header_blob_gas_used=131072-correct:0xa0000-header:0x20000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -3382,7 +5128,59 @@ { "rlp": "0xf9035bf90242a0db2f72d281fe090653811fdd031bea343ba6f83fc1e36191a9098684e1078d64a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca020f36c013e61ffbbb870fd5037691af27e276382fb0790a2568a9b70a660f695a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083040000a00000000000000000000000000000000000000000000000000000000000000000f90111b9010e03f9010a0180800782afc89400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a0ddcf2d9ad185ba2bc91a992e59bd49a8bf21c9c6c545e62f313fd05ce54d87f8a02150c7eb893380d15bdb85a821c0bbfd83e2e8e17c5bd579740fa17903881c6dc0c0", "expectException": "invalid blob gas used", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xdb2f72d281fe090653811fdd031bea343ba6f83fc1e36191a9098684e1078d64", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x20f36c013e61ffbbb870fd5037691af27e276382fb0790a2568a9b70a660f695", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x55701ca283fc873a288c3ddd01a1b08e496dfa46692fc67ed38efd659f1b36e2" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003", + "0x0100000000000000000000000000000000000000000000000000000000000004" + ], + "v": "0x01", + "r": "0xddcf2d9ad185ba2bc91a992e59bd49a8bf21c9c6c545e62f313fd05ce54d87f8", + "s": "0x2150c7eb893380d15bdb85a821c0bbfd83e2e8e17c5bd579740fa17903881c6d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xdb2f72d281fe090653811fdd031bea343ba6f83fc1e36191a9098684e1078d64", @@ -3442,7 +5240,7 @@ }, "037-fork=Cancun-parent_blobs=0-new_blobs=5-header_blob_gas_used=262144-correct:0xa0000-header:0x40000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -3475,7 +5273,59 @@ { "rlp": "0xf9035bf90242a0db2f72d281fe090653811fdd031bea343ba6f83fc1e36191a9098684e1078d64a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca020f36c013e61ffbbb870fd5037691af27e276382fb0790a2568a9b70a660f695a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000083040000a00000000000000000000000000000000000000000000000000000000000000000f90111b9010e03f9010a0180800782afc89400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a0ddcf2d9ad185ba2bc91a992e59bd49a8bf21c9c6c545e62f313fd05ce54d87f8a02150c7eb893380d15bdb85a821c0bbfd83e2e8e17c5bd579740fa17903881c6dc0c0", "expectException": "invalid blob gas used", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xdb2f72d281fe090653811fdd031bea343ba6f83fc1e36191a9098684e1078d64", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x20f36c013e61ffbbb870fd5037691af27e276382fb0790a2568a9b70a660f695", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x040000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xd323a35fdd82d63f6c476b12f02e31c4be1d436c5be660453c2690685139b464" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003", + "0x0100000000000000000000000000000000000000000000000000000000000004" + ], + "v": "0x01", + "r": "0xddcf2d9ad185ba2bc91a992e59bd49a8bf21c9c6c545e62f313fd05ce54d87f8", + "s": "0x2150c7eb893380d15bdb85a821c0bbfd83e2e8e17c5bd579740fa17903881c6d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xdb2f72d281fe090653811fdd031bea343ba6f83fc1e36191a9098684e1078d64", @@ -3535,7 +5385,7 @@ }, "038-fork=Cancun-parent_blobs=0-new_blobs=5-header_blob_gas_used=393216-correct:0xa0000-header:0x60000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -3568,7 +5418,59 @@ { "rlp": "0xf9035bf90242a0db2f72d281fe090653811fdd031bea343ba6f83fc1e36191a9098684e1078d64a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca020f36c013e61ffbbb870fd5037691af27e276382fb0790a2568a9b70a660f695a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000083040000a00000000000000000000000000000000000000000000000000000000000000000f90111b9010e03f9010a0180800782afc89400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a0ddcf2d9ad185ba2bc91a992e59bd49a8bf21c9c6c545e62f313fd05ce54d87f8a02150c7eb893380d15bdb85a821c0bbfd83e2e8e17c5bd579740fa17903881c6dc0c0", "expectException": "invalid blob gas used", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xdb2f72d281fe090653811fdd031bea343ba6f83fc1e36191a9098684e1078d64", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x20f36c013e61ffbbb870fd5037691af27e276382fb0790a2568a9b70a660f695", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x060000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x4d0ad23571c38a98890ba7b502db941c4bea7392269f45d667c577636b0356e5" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003", + "0x0100000000000000000000000000000000000000000000000000000000000004" + ], + "v": "0x01", + "r": "0xddcf2d9ad185ba2bc91a992e59bd49a8bf21c9c6c545e62f313fd05ce54d87f8", + "s": "0x2150c7eb893380d15bdb85a821c0bbfd83e2e8e17c5bd579740fa17903881c6d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xdb2f72d281fe090653811fdd031bea343ba6f83fc1e36191a9098684e1078d64", @@ -3628,7 +5530,7 @@ }, "039-fork=Cancun-parent_blobs=0-new_blobs=5-header_blob_gas_used=524288-correct:0xa0000-header:0x80000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -3661,7 +5563,59 @@ { "rlp": "0xf9035bf90242a0db2f72d281fe090653811fdd031bea343ba6f83fc1e36191a9098684e1078d64a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca020f36c013e61ffbbb870fd5037691af27e276382fb0790a2568a9b70a660f695a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218308000083040000a00000000000000000000000000000000000000000000000000000000000000000f90111b9010e03f9010a0180800782afc89400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a0ddcf2d9ad185ba2bc91a992e59bd49a8bf21c9c6c545e62f313fd05ce54d87f8a02150c7eb893380d15bdb85a821c0bbfd83e2e8e17c5bd579740fa17903881c6dc0c0", "expectException": "invalid blob gas used", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xdb2f72d281fe090653811fdd031bea343ba6f83fc1e36191a9098684e1078d64", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x20f36c013e61ffbbb870fd5037691af27e276382fb0790a2568a9b70a660f695", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x080000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xf496fc9ef2f440a7dc194558da45eb9a6d39d456684072bdb0e6e40f9c53afaa" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003", + "0x0100000000000000000000000000000000000000000000000000000000000004" + ], + "v": "0x01", + "r": "0xddcf2d9ad185ba2bc91a992e59bd49a8bf21c9c6c545e62f313fd05ce54d87f8", + "s": "0x2150c7eb893380d15bdb85a821c0bbfd83e2e8e17c5bd579740fa17903881c6d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xdb2f72d281fe090653811fdd031bea343ba6f83fc1e36191a9098684e1078d64", @@ -3721,7 +5675,7 @@ }, "040-fork=Cancun-parent_blobs=0-new_blobs=5-header_blob_gas_used=786432-correct:0xa0000-header:0xc0000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -3754,7 +5708,59 @@ { "rlp": "0xf9035bf90242a0db2f72d281fe090653811fdd031bea343ba6f83fc1e36191a9098684e1078d64a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca020f36c013e61ffbbb870fd5037691af27e276382fb0790a2568a9b70a660f695a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000083040000a00000000000000000000000000000000000000000000000000000000000000000f90111b9010e03f9010a0180800782afc89400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a0ddcf2d9ad185ba2bc91a992e59bd49a8bf21c9c6c545e62f313fd05ce54d87f8a02150c7eb893380d15bdb85a821c0bbfd83e2e8e17c5bd579740fa17903881c6dc0c0", "expectException": "invalid blob gas used", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xdb2f72d281fe090653811fdd031bea343ba6f83fc1e36191a9098684e1078d64", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x20f36c013e61ffbbb870fd5037691af27e276382fb0790a2568a9b70a660f695", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0c0000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xcc17c866bfd4df2d4176c3a1db421912cbfe9140c8af1da68ee15142c92208f0" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003", + "0x0100000000000000000000000000000000000000000000000000000000000004" + ], + "v": "0x01", + "r": "0xddcf2d9ad185ba2bc91a992e59bd49a8bf21c9c6c545e62f313fd05ce54d87f8", + "s": "0x2150c7eb893380d15bdb85a821c0bbfd83e2e8e17c5bd579740fa17903881c6d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xdb2f72d281fe090653811fdd031bea343ba6f83fc1e36191a9098684e1078d64", @@ -3814,7 +5820,7 @@ }, "041-fork=Cancun-parent_blobs=0-new_blobs=5-header_blob_gas_used=18446744073709551615-correct:0xa0000-header:0xffffffffffffffff": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -3847,7 +5853,59 @@ { "rlp": "0xf90360f90247a0db2f72d281fe090653811fdd031bea343ba6f83fc1e36191a9098684e1078d64a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca020f36c013e61ffbbb870fd5037691af27e276382fb0790a2568a9b70a660f695a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42188ffffffffffffffff83040000a00000000000000000000000000000000000000000000000000000000000000000f90111b9010e03f9010a0180800782afc89400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a0ddcf2d9ad185ba2bc91a992e59bd49a8bf21c9c6c545e62f313fd05ce54d87f8a02150c7eb893380d15bdb85a821c0bbfd83e2e8e17c5bd579740fa17903881c6dc0c0", "expectException": "invalid blob gas used", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xdb2f72d281fe090653811fdd031bea343ba6f83fc1e36191a9098684e1078d64", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x20f36c013e61ffbbb870fd5037691af27e276382fb0790a2568a9b70a660f695", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0xffffffffffffffff", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x1bfccb460adf5476bd9b486ee905596b222ed22c4282b6885210dcc338f8dfaa" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003", + "0x0100000000000000000000000000000000000000000000000000000000000004" + ], + "v": "0x01", + "r": "0xddcf2d9ad185ba2bc91a992e59bd49a8bf21c9c6c545e62f313fd05ce54d87f8", + "s": "0x2150c7eb893380d15bdb85a821c0bbfd83e2e8e17c5bd579740fa17903881c6d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xdb2f72d281fe090653811fdd031bea343ba6f83fc1e36191a9098684e1078d64", @@ -3907,7 +5965,7 @@ }, "042-fork=Cancun-parent_blobs=0-new_blobs=6-header_blob_gas_used=0-correct:0xc0000-header:0x0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -3940,7 +5998,60 @@ { "rlp": "0xf90379f9023fa01bb59dd376be8aff21438ab60f8fcb70d68be44a226813094b2d49f1c5b38652a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0e466b45b67935b425ddc7e6d7e8761063f6e4dfa5db55b895bb150ace26812b8a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083040000a00000000000000000000000000000000000000000000000000000000000000000f90132b9012f03f9012b0180800782afc89400000000000000000000000000000000000001000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000580a02ce2486e0e80dffcb02691491cec0986157404d9bd4e3b56bd7c71a766527c59a06cc1dc36b255ae67d0cf1e1660c6b7d934970b3a139d0376a5128dc523ccaf8dc0c0", "expectException": "invalid blob gas used", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x1bb59dd376be8aff21438ab60f8fcb70d68be44a226813094b2d49f1c5b38652", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0xe466b45b67935b425ddc7e6d7e8761063f6e4dfa5db55b895bb150ace26812b8", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x2929c500bb945fc9b2451abba159273c088289c35f0f444b574a4bdec41ea952" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003", + "0x0100000000000000000000000000000000000000000000000000000000000004", + "0x0100000000000000000000000000000000000000000000000000000000000005" + ], + "v": "0x00", + "r": "0x2ce2486e0e80dffcb02691491cec0986157404d9bd4e3b56bd7c71a766527c59", + "s": "0x6cc1dc36b255ae67d0cf1e1660c6b7d934970b3a139d0376a5128dc523ccaf8d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x1bb59dd376be8aff21438ab60f8fcb70d68be44a226813094b2d49f1c5b38652", @@ -4000,7 +6111,7 @@ }, "043-fork=Cancun-parent_blobs=0-new_blobs=6-header_blob_gas_used=131072-correct:0xc0000-header:0x20000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -4033,7 +6144,60 @@ { "rlp": "0xf9037cf90242a01bb59dd376be8aff21438ab60f8fcb70d68be44a226813094b2d49f1c5b38652a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0e466b45b67935b425ddc7e6d7e8761063f6e4dfa5db55b895bb150ace26812b8a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083040000a00000000000000000000000000000000000000000000000000000000000000000f90132b9012f03f9012b0180800782afc89400000000000000000000000000000000000001000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000580a02ce2486e0e80dffcb02691491cec0986157404d9bd4e3b56bd7c71a766527c59a06cc1dc36b255ae67d0cf1e1660c6b7d934970b3a139d0376a5128dc523ccaf8dc0c0", "expectException": "invalid blob gas used", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x1bb59dd376be8aff21438ab60f8fcb70d68be44a226813094b2d49f1c5b38652", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0xe466b45b67935b425ddc7e6d7e8761063f6e4dfa5db55b895bb150ace26812b8", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x4599d69b9c936426fbc7666495e75f7ce4c1f780f8bcd81f2d3621a4d2c0e9f2" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003", + "0x0100000000000000000000000000000000000000000000000000000000000004", + "0x0100000000000000000000000000000000000000000000000000000000000005" + ], + "v": "0x00", + "r": "0x2ce2486e0e80dffcb02691491cec0986157404d9bd4e3b56bd7c71a766527c59", + "s": "0x6cc1dc36b255ae67d0cf1e1660c6b7d934970b3a139d0376a5128dc523ccaf8d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x1bb59dd376be8aff21438ab60f8fcb70d68be44a226813094b2d49f1c5b38652", @@ -4093,7 +6257,7 @@ }, "044-fork=Cancun-parent_blobs=0-new_blobs=6-header_blob_gas_used=262144-correct:0xc0000-header:0x40000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -4126,7 +6290,60 @@ { "rlp": "0xf9037cf90242a01bb59dd376be8aff21438ab60f8fcb70d68be44a226813094b2d49f1c5b38652a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0e466b45b67935b425ddc7e6d7e8761063f6e4dfa5db55b895bb150ace26812b8a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000083040000a00000000000000000000000000000000000000000000000000000000000000000f90132b9012f03f9012b0180800782afc89400000000000000000000000000000000000001000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000580a02ce2486e0e80dffcb02691491cec0986157404d9bd4e3b56bd7c71a766527c59a06cc1dc36b255ae67d0cf1e1660c6b7d934970b3a139d0376a5128dc523ccaf8dc0c0", "expectException": "invalid blob gas used", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x1bb59dd376be8aff21438ab60f8fcb70d68be44a226813094b2d49f1c5b38652", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0xe466b45b67935b425ddc7e6d7e8761063f6e4dfa5db55b895bb150ace26812b8", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x040000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x7c9b63194c04b85ab395935bc917c59ae74e5616e70da3bac84c4eb53492d07e" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003", + "0x0100000000000000000000000000000000000000000000000000000000000004", + "0x0100000000000000000000000000000000000000000000000000000000000005" + ], + "v": "0x00", + "r": "0x2ce2486e0e80dffcb02691491cec0986157404d9bd4e3b56bd7c71a766527c59", + "s": "0x6cc1dc36b255ae67d0cf1e1660c6b7d934970b3a139d0376a5128dc523ccaf8d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x1bb59dd376be8aff21438ab60f8fcb70d68be44a226813094b2d49f1c5b38652", @@ -4186,7 +6403,7 @@ }, "045-fork=Cancun-parent_blobs=0-new_blobs=6-header_blob_gas_used=393216-correct:0xc0000-header:0x60000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -4219,7 +6436,60 @@ { "rlp": "0xf9037cf90242a01bb59dd376be8aff21438ab60f8fcb70d68be44a226813094b2d49f1c5b38652a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0e466b45b67935b425ddc7e6d7e8761063f6e4dfa5db55b895bb150ace26812b8a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000083040000a00000000000000000000000000000000000000000000000000000000000000000f90132b9012f03f9012b0180800782afc89400000000000000000000000000000000000001000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000580a02ce2486e0e80dffcb02691491cec0986157404d9bd4e3b56bd7c71a766527c59a06cc1dc36b255ae67d0cf1e1660c6b7d934970b3a139d0376a5128dc523ccaf8dc0c0", "expectException": "invalid blob gas used", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x1bb59dd376be8aff21438ab60f8fcb70d68be44a226813094b2d49f1c5b38652", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0xe466b45b67935b425ddc7e6d7e8761063f6e4dfa5db55b895bb150ace26812b8", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x060000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xaae35f56be7dd7f196a3c639f80edb7bf57638196014e91c98eecd6615c50646" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003", + "0x0100000000000000000000000000000000000000000000000000000000000004", + "0x0100000000000000000000000000000000000000000000000000000000000005" + ], + "v": "0x00", + "r": "0x2ce2486e0e80dffcb02691491cec0986157404d9bd4e3b56bd7c71a766527c59", + "s": "0x6cc1dc36b255ae67d0cf1e1660c6b7d934970b3a139d0376a5128dc523ccaf8d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x1bb59dd376be8aff21438ab60f8fcb70d68be44a226813094b2d49f1c5b38652", @@ -4279,7 +6549,7 @@ }, "046-fork=Cancun-parent_blobs=0-new_blobs=6-header_blob_gas_used=524288-correct:0xc0000-header:0x80000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -4312,7 +6582,60 @@ { "rlp": "0xf9037cf90242a01bb59dd376be8aff21438ab60f8fcb70d68be44a226813094b2d49f1c5b38652a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0e466b45b67935b425ddc7e6d7e8761063f6e4dfa5db55b895bb150ace26812b8a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218308000083040000a00000000000000000000000000000000000000000000000000000000000000000f90132b9012f03f9012b0180800782afc89400000000000000000000000000000000000001000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000580a02ce2486e0e80dffcb02691491cec0986157404d9bd4e3b56bd7c71a766527c59a06cc1dc36b255ae67d0cf1e1660c6b7d934970b3a139d0376a5128dc523ccaf8dc0c0", "expectException": "invalid blob gas used", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x1bb59dd376be8aff21438ab60f8fcb70d68be44a226813094b2d49f1c5b38652", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0xe466b45b67935b425ddc7e6d7e8761063f6e4dfa5db55b895bb150ace26812b8", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x080000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x4dedfd4d169fe939eb535a86a689b6cfbfbb08e854781a97d654b42b09e971cc" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003", + "0x0100000000000000000000000000000000000000000000000000000000000004", + "0x0100000000000000000000000000000000000000000000000000000000000005" + ], + "v": "0x00", + "r": "0x2ce2486e0e80dffcb02691491cec0986157404d9bd4e3b56bd7c71a766527c59", + "s": "0x6cc1dc36b255ae67d0cf1e1660c6b7d934970b3a139d0376a5128dc523ccaf8d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x1bb59dd376be8aff21438ab60f8fcb70d68be44a226813094b2d49f1c5b38652", @@ -4372,7 +6695,7 @@ }, "047-fork=Cancun-parent_blobs=0-new_blobs=6-header_blob_gas_used=655360-correct:0xc0000-header:0xa0000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -4405,7 +6728,60 @@ { "rlp": "0xf9037cf90242a01bb59dd376be8aff21438ab60f8fcb70d68be44a226813094b2d49f1c5b38652a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0e466b45b67935b425ddc7e6d7e8761063f6e4dfa5db55b895bb150ace26812b8a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a000083040000a00000000000000000000000000000000000000000000000000000000000000000f90132b9012f03f9012b0180800782afc89400000000000000000000000000000000000001000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000580a02ce2486e0e80dffcb02691491cec0986157404d9bd4e3b56bd7c71a766527c59a06cc1dc36b255ae67d0cf1e1660c6b7d934970b3a139d0376a5128dc523ccaf8dc0c0", "expectException": "invalid blob gas used", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x1bb59dd376be8aff21438ab60f8fcb70d68be44a226813094b2d49f1c5b38652", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0xe466b45b67935b425ddc7e6d7e8761063f6e4dfa5db55b895bb150ace26812b8", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0a0000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x367960cf3c87035e2416315129a603c72ec4e818eeb00d6a4baa86eef81edac0" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003", + "0x0100000000000000000000000000000000000000000000000000000000000004", + "0x0100000000000000000000000000000000000000000000000000000000000005" + ], + "v": "0x00", + "r": "0x2ce2486e0e80dffcb02691491cec0986157404d9bd4e3b56bd7c71a766527c59", + "s": "0x6cc1dc36b255ae67d0cf1e1660c6b7d934970b3a139d0376a5128dc523ccaf8d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x1bb59dd376be8aff21438ab60f8fcb70d68be44a226813094b2d49f1c5b38652", @@ -4465,7 +6841,7 @@ }, "048-fork=Cancun-parent_blobs=0-new_blobs=6-header_blob_gas_used=18446744073709551615-correct:0xc0000-header:0xffffffffffffffff": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -4498,7 +6874,60 @@ { "rlp": "0xf90381f90247a01bb59dd376be8aff21438ab60f8fcb70d68be44a226813094b2d49f1c5b38652a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0e466b45b67935b425ddc7e6d7e8761063f6e4dfa5db55b895bb150ace26812b8a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42188ffffffffffffffff83040000a00000000000000000000000000000000000000000000000000000000000000000f90132b9012f03f9012b0180800782afc89400000000000000000000000000000000000001000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000580a02ce2486e0e80dffcb02691491cec0986157404d9bd4e3b56bd7c71a766527c59a06cc1dc36b255ae67d0cf1e1660c6b7d934970b3a139d0376a5128dc523ccaf8dc0c0", "expectException": "invalid blob gas used", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x1bb59dd376be8aff21438ab60f8fcb70d68be44a226813094b2d49f1c5b38652", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0xe466b45b67935b425ddc7e6d7e8761063f6e4dfa5db55b895bb150ace26812b8", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0xffffffffffffffff", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x0ff9f5fcba4add07c651b6baf06ea569ffd42cf9d30635014e293be5434791af" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003", + "0x0100000000000000000000000000000000000000000000000000000000000004", + "0x0100000000000000000000000000000000000000000000000000000000000005" + ], + "v": "0x00", + "r": "0x2ce2486e0e80dffcb02691491cec0986157404d9bd4e3b56bd7c71a766527c59", + "s": "0x6cc1dc36b255ae67d0cf1e1660c6b7d934970b3a139d0376a5128dc523ccaf8d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x1bb59dd376be8aff21438ab60f8fcb70d68be44a226813094b2d49f1c5b38652", diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_excess_blob_gas_above_target_change.json b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_excess_blob_gas_above_target_change.json index 8892aa5d9e0..35bf3971022 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_excess_blob_gas_above_target_change.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_excess_blob_gas_above_target_change.json @@ -1,7 +1,7 @@ { "000-fork=Cancun-new_blobs=1-zero_blobs_decrease_more_than_expected-correct:0x40000-header:0x20000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -34,7 +34,55 @@ { "rlp": "0xf902d3f90242a05ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x020000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x0de9ecc1eaf7213e6ec4cc19358796096d60740ee2950a42ad179096ad7fcc83" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2", @@ -94,7 +142,7 @@ }, "001-fork=Cancun-new_blobs=1-max_blobs_increase_more_than_expected-correct:0x100000-header:0x120000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -183,7 +231,55 @@ { "rlp": "0xf902d3f90242a01c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083120000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x1c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2e", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x120000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x04022b55371e25f2a7fe8f942909a0335d33d598d118b3ad5d30948c4e069385" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x1c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2e", diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_excess_blob_gas_change.json b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_excess_blob_gas_change.json index 47597607c8c..05e4f522d97 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_excess_blob_gas_change.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_excess_blob_gas_change.json @@ -1,7 +1,7 @@ { "000-fork=Cancun-new_blobs=1-parent_blobs=0-header_excess_blobs_delta=-3-correct:0x40000-header:0xfffffffffffe0000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -34,7 +34,55 @@ { "rlp": "0xf902d8f90247a05ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffe0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0xfffffffffffe0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xb0ae2da2b3c7b81cc9cbd85670aa8d70c2fa9520515347eeddae3a9d8971e088" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2", @@ -94,7 +142,7 @@ }, "001-fork=Cancun-new_blobs=1-parent_blobs=0-header_excess_blobs_delta=-2-correct:0x40000-header:0x0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -127,7 +175,55 @@ { "rlp": "0xf902d0f9023fa05ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x03e22ea02241c69c4c2be271e559c96df35ed94bd5bb1dba70600f7708e9d5ad" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2", @@ -187,7 +283,7 @@ }, "002-fork=Cancun-new_blobs=1-parent_blobs=0-header_excess_blobs_delta=-1-correct:0x40000-header:0x20000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -220,7 +316,55 @@ { "rlp": "0xf902d3f90242a05ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x020000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x0de9ecc1eaf7213e6ec4cc19358796096d60740ee2950a42ad179096ad7fcc83" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2", @@ -280,7 +424,7 @@ }, "003-fork=Cancun-new_blobs=1-parent_blobs=0-header_excess_blobs_delta=1-correct:0x40000-header:0x60000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -313,7 +457,55 @@ { "rlp": "0xf902d3f90242a05ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083060000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x060000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xd49d2d9433c30198e08f7e515f1477cca4ca9c7eac647a85422f165bd3e6fa1c" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2", @@ -373,7 +565,7 @@ }, "004-fork=Cancun-new_blobs=1-parent_blobs=0-header_excess_blobs_delta=2-correct:0x40000-header:0x80000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -406,7 +598,55 @@ { "rlp": "0xf902d3f90242a05ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083080000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x080000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xdfc8f35128ce527aa73bb7163f3ed32c4dbd0cf1eb438ecc9fb5f27e7f91a673" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2", @@ -466,7 +706,7 @@ }, "005-fork=Cancun-new_blobs=1-parent_blobs=0-header_excess_blobs_delta=3-correct:0x40000-header:0xa0000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -499,7 +739,55 @@ { "rlp": "0xf902d3f90242a05ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830a0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0a0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x4e55e06163495ac46a1f620d43451be2214b81a175b595ea8392c34d76b25d65" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2", @@ -559,7 +847,7 @@ }, "006-fork=Cancun-new_blobs=1-parent_blobs=1-header_excess_blobs_delta=-3-correct:0x60000-header:0x0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -643,7 +931,55 @@ { "rlp": "0xf902d0f9023fa0c1628b13a83bf129ac4c1613148bb8acf4feb86959e0dcfd51c24e1dbff8db69a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xc1628b13a83bf129ac4c1613148bb8acf4feb86959e0dcfd51c24e1dbff8db69", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x339669f618eab0fed6b09bf2a4db6e0bcb9e0150914f213088c3f803f6d54223" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xc1628b13a83bf129ac4c1613148bb8acf4feb86959e0dcfd51c24e1dbff8db69", @@ -711,7 +1047,7 @@ }, "007-fork=Cancun-new_blobs=1-parent_blobs=1-header_excess_blobs_delta=-2-correct:0x60000-header:0x20000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -795,7 +1131,55 @@ { "rlp": "0xf902d3f90242a0c1628b13a83bf129ac4c1613148bb8acf4feb86959e0dcfd51c24e1dbff8db69a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xc1628b13a83bf129ac4c1613148bb8acf4feb86959e0dcfd51c24e1dbff8db69", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x020000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x43306e063851dbc5fe4d597266ed0719506ecbde714dc2070d1a1962eaaf2f55" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xc1628b13a83bf129ac4c1613148bb8acf4feb86959e0dcfd51c24e1dbff8db69", @@ -863,7 +1247,7 @@ }, "008-fork=Cancun-new_blobs=1-parent_blobs=1-header_excess_blobs_delta=-1-correct:0x60000-header:0x40000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -947,7 +1331,55 @@ { "rlp": "0xf902d3f90242a0c1628b13a83bf129ac4c1613148bb8acf4feb86959e0dcfd51c24e1dbff8db69a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083040000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xc1628b13a83bf129ac4c1613148bb8acf4feb86959e0dcfd51c24e1dbff8db69", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x1295cabb02c5167b5e5782e355a20542b428b098527a80a48c23fe542aef5c0c" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xc1628b13a83bf129ac4c1613148bb8acf4feb86959e0dcfd51c24e1dbff8db69", @@ -1015,7 +1447,7 @@ }, "009-fork=Cancun-new_blobs=1-parent_blobs=1-header_excess_blobs_delta=1-correct:0x60000-header:0x80000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1099,7 +1531,55 @@ { "rlp": "0xf902d3f90242a0c1628b13a83bf129ac4c1613148bb8acf4feb86959e0dcfd51c24e1dbff8db69a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083080000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xc1628b13a83bf129ac4c1613148bb8acf4feb86959e0dcfd51c24e1dbff8db69", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x080000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xc86b89998dae1ab4a93b93f73a2c7efa6a27d54775c72bce59395c80fa0f6906" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xc1628b13a83bf129ac4c1613148bb8acf4feb86959e0dcfd51c24e1dbff8db69", @@ -1167,7 +1647,7 @@ }, "010-fork=Cancun-new_blobs=1-parent_blobs=1-header_excess_blobs_delta=2-correct:0x60000-header:0xa0000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1251,7 +1731,55 @@ { "rlp": "0xf902d3f90242a0c1628b13a83bf129ac4c1613148bb8acf4feb86959e0dcfd51c24e1dbff8db69a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830a0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xc1628b13a83bf129ac4c1613148bb8acf4feb86959e0dcfd51c24e1dbff8db69", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0a0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x45c9da351edf1d03771ff619674589575d6ec750233ddc34436d4c17989d6d21" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xc1628b13a83bf129ac4c1613148bb8acf4feb86959e0dcfd51c24e1dbff8db69", @@ -1319,7 +1847,7 @@ }, "011-fork=Cancun-new_blobs=1-parent_blobs=1-header_excess_blobs_delta=3-correct:0x60000-header:0xc0000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1403,7 +1931,55 @@ { "rlp": "0xf902d3f90242a0c1628b13a83bf129ac4c1613148bb8acf4feb86959e0dcfd51c24e1dbff8db69a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830c0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xc1628b13a83bf129ac4c1613148bb8acf4feb86959e0dcfd51c24e1dbff8db69", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0c0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xf0102694c0c7740e15e4f454a0742be62dfcd1a39b9e7eb89d74b69654ad7213" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xc1628b13a83bf129ac4c1613148bb8acf4feb86959e0dcfd51c24e1dbff8db69", @@ -1471,7 +2047,7 @@ }, "012-fork=Cancun-new_blobs=1-parent_blobs=2-header_excess_blobs_delta=-3-correct:0x80000-header:0x20000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1556,7 +2132,55 @@ { "rlp": "0xf902d3f90242a0b3d1505f6e0dfecc33190a216655309008fea8d105cf90e8a1822fde05ae4e93a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xb3d1505f6e0dfecc33190a216655309008fea8d105cf90e8a1822fde05ae4e93", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x020000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x0fd4ebe4b89efb507c63c2797883dc74a9d9638acced6eb48db87f2ff02c6c2d" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xb3d1505f6e0dfecc33190a216655309008fea8d105cf90e8a1822fde05ae4e93", @@ -1624,7 +2248,7 @@ }, "013-fork=Cancun-new_blobs=1-parent_blobs=2-header_excess_blobs_delta=-2-correct:0x80000-header:0x40000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1709,7 +2333,55 @@ { "rlp": "0xf902d3f90242a0b3d1505f6e0dfecc33190a216655309008fea8d105cf90e8a1822fde05ae4e93a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083040000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xb3d1505f6e0dfecc33190a216655309008fea8d105cf90e8a1822fde05ae4e93", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xd49f0d2ebb05888eddcfb7fadacba580793c9e68fe0cdc4406137ff5c76d5504" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xb3d1505f6e0dfecc33190a216655309008fea8d105cf90e8a1822fde05ae4e93", @@ -1777,7 +2449,7 @@ }, "014-fork=Cancun-new_blobs=1-parent_blobs=2-header_excess_blobs_delta=-1-correct:0x80000-header:0x60000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1862,7 +2534,55 @@ { "rlp": "0xf902d3f90242a0b3d1505f6e0dfecc33190a216655309008fea8d105cf90e8a1822fde05ae4e93a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083060000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xb3d1505f6e0dfecc33190a216655309008fea8d105cf90e8a1822fde05ae4e93", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x060000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x557d3db284b5acd34f707d6c039b26deac0c915f13d0fea37c03e0e52ca928b4" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xb3d1505f6e0dfecc33190a216655309008fea8d105cf90e8a1822fde05ae4e93", @@ -1930,7 +2650,7 @@ }, "015-fork=Cancun-new_blobs=1-parent_blobs=2-header_excess_blobs_delta=1-correct:0x80000-header:0xa0000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2015,7 +2735,55 @@ { "rlp": "0xf902d3f90242a0b3d1505f6e0dfecc33190a216655309008fea8d105cf90e8a1822fde05ae4e93a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830a0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xb3d1505f6e0dfecc33190a216655309008fea8d105cf90e8a1822fde05ae4e93", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0a0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x9637613028e9fb345df14630252dab3bf3e902af92c5589300f03d0fed26b8fb" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xb3d1505f6e0dfecc33190a216655309008fea8d105cf90e8a1822fde05ae4e93", @@ -2083,7 +2851,7 @@ }, "016-fork=Cancun-new_blobs=1-parent_blobs=2-header_excess_blobs_delta=2-correct:0x80000-header:0xc0000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2168,7 +2936,55 @@ { "rlp": "0xf902d3f90242a0b3d1505f6e0dfecc33190a216655309008fea8d105cf90e8a1822fde05ae4e93a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830c0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xb3d1505f6e0dfecc33190a216655309008fea8d105cf90e8a1822fde05ae4e93", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0c0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x981df8dcfec46cec990b584d2834be068426e14d393fae7f58925534e6286f8f" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xb3d1505f6e0dfecc33190a216655309008fea8d105cf90e8a1822fde05ae4e93", @@ -2236,7 +3052,7 @@ }, "017-fork=Cancun-new_blobs=1-parent_blobs=2-header_excess_blobs_delta=3-correct:0x80000-header:0xe0000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2321,7 +3137,55 @@ { "rlp": "0xf902d3f90242a0b3d1505f6e0dfecc33190a216655309008fea8d105cf90e8a1822fde05ae4e93a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xb3d1505f6e0dfecc33190a216655309008fea8d105cf90e8a1822fde05ae4e93", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x94e34e197dbb7e2f8fbc772df764cbc22a5654b1595eee51f416de1eb2af7448" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xb3d1505f6e0dfecc33190a216655309008fea8d105cf90e8a1822fde05ae4e93", @@ -2389,7 +3253,7 @@ }, "018-fork=Cancun-new_blobs=1-parent_blobs=3-header_excess_blobs_delta=-3-correct:0xa0000-header:0x40000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2475,7 +3339,55 @@ { "rlp": "0xf902d3f90242a0a9b390ae7619916e5b1996613757356de25206626f06665d90888f5f9ca685e3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083040000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xa9b390ae7619916e5b1996613757356de25206626f06665d90888f5f9ca685e3", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x5983d885dd90ae9f616570e394104123e0021089006d865673933e083534f77b" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xa9b390ae7619916e5b1996613757356de25206626f06665d90888f5f9ca685e3", @@ -2543,7 +3455,7 @@ }, "019-fork=Cancun-new_blobs=1-parent_blobs=3-header_excess_blobs_delta=-2-correct:0xa0000-header:0x60000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2629,7 +3541,55 @@ { "rlp": "0xf902d3f90242a0a9b390ae7619916e5b1996613757356de25206626f06665d90888f5f9ca685e3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083060000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xa9b390ae7619916e5b1996613757356de25206626f06665d90888f5f9ca685e3", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x060000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xba6ec2454209f9d05027836f40f00b591fecaae0b73734a00c8f7bc0b3ccd3c3" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xa9b390ae7619916e5b1996613757356de25206626f06665d90888f5f9ca685e3", @@ -2697,7 +3657,7 @@ }, "020-fork=Cancun-new_blobs=1-parent_blobs=3-header_excess_blobs_delta=-1-correct:0xa0000-header:0x80000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2783,7 +3743,55 @@ { "rlp": "0xf902d3f90242a0a9b390ae7619916e5b1996613757356de25206626f06665d90888f5f9ca685e3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083080000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xa9b390ae7619916e5b1996613757356de25206626f06665d90888f5f9ca685e3", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x080000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe83ede7746ecbb9fbf1df8b764c86a70f8027c41e89c435c8d25229f4135643d" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xa9b390ae7619916e5b1996613757356de25206626f06665d90888f5f9ca685e3", @@ -2851,7 +3859,7 @@ }, "021-fork=Cancun-new_blobs=1-parent_blobs=3-header_excess_blobs_delta=1-correct:0xa0000-header:0xc0000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2937,7 +3945,55 @@ { "rlp": "0xf902d3f90242a0a9b390ae7619916e5b1996613757356de25206626f06665d90888f5f9ca685e3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830c0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xa9b390ae7619916e5b1996613757356de25206626f06665d90888f5f9ca685e3", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0c0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x38a0918ed38ba806574dc3f0731bc24f602fd9989d8d485fce9d25d37d7d866d" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xa9b390ae7619916e5b1996613757356de25206626f06665d90888f5f9ca685e3", @@ -3005,7 +4061,7 @@ }, "022-fork=Cancun-new_blobs=1-parent_blobs=3-header_excess_blobs_delta=2-correct:0xa0000-header:0xe0000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -3091,7 +4147,55 @@ { "rlp": "0xf902d3f90242a0a9b390ae7619916e5b1996613757356de25206626f06665d90888f5f9ca685e3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xa9b390ae7619916e5b1996613757356de25206626f06665d90888f5f9ca685e3", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xefa4bd9695f4d88e036e8e178118d2dfd6c38107a49f2cbbaf6ec844c132622f" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xa9b390ae7619916e5b1996613757356de25206626f06665d90888f5f9ca685e3", @@ -3159,7 +4263,7 @@ }, "023-fork=Cancun-new_blobs=1-parent_blobs=3-header_excess_blobs_delta=3-correct:0xa0000-header:0x100000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -3245,7 +4349,55 @@ { "rlp": "0xf902d3f90242a0a9b390ae7619916e5b1996613757356de25206626f06665d90888f5f9ca685e3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083100000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xa9b390ae7619916e5b1996613757356de25206626f06665d90888f5f9ca685e3", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x100000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x856de497b4c16eac67b5a24435c69416578b9c071aff735b9e703db2b802cc16" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xa9b390ae7619916e5b1996613757356de25206626f06665d90888f5f9ca685e3", @@ -3313,7 +4465,7 @@ }, "024-fork=Cancun-new_blobs=1-parent_blobs=4-header_excess_blobs_delta=-3-correct:0xc0000-header:0x60000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -3400,7 +4552,55 @@ { "rlp": "0xf902d3f90242a01dcf918975d43b00527a2b1256e2f4361558d273c45e8761b33429ea9f2c02dea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083060000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x1dcf918975d43b00527a2b1256e2f4361558d273c45e8761b33429ea9f2c02de", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x060000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x551b2e6b4b8ba2680e3a6dd891cd557aea9f96d7ea98490a651055f798645b83" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x1dcf918975d43b00527a2b1256e2f4361558d273c45e8761b33429ea9f2c02de", @@ -3468,7 +4668,7 @@ }, "025-fork=Cancun-new_blobs=1-parent_blobs=4-header_excess_blobs_delta=-2-correct:0xc0000-header:0x80000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -3555,7 +4755,55 @@ { "rlp": "0xf902d3f90242a01dcf918975d43b00527a2b1256e2f4361558d273c45e8761b33429ea9f2c02dea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083080000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x1dcf918975d43b00527a2b1256e2f4361558d273c45e8761b33429ea9f2c02de", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x080000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xbea84808c88cb6e29ecaae8814df6ac245ca47d1117fd48547a946a61341328b" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x1dcf918975d43b00527a2b1256e2f4361558d273c45e8761b33429ea9f2c02de", @@ -3623,7 +4871,7 @@ }, "026-fork=Cancun-new_blobs=1-parent_blobs=4-header_excess_blobs_delta=-1-correct:0xc0000-header:0xa0000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -3710,7 +4958,55 @@ { "rlp": "0xf902d3f90242a01dcf918975d43b00527a2b1256e2f4361558d273c45e8761b33429ea9f2c02dea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830a0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x1dcf918975d43b00527a2b1256e2f4361558d273c45e8761b33429ea9f2c02de", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0a0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xc1960e4db7343cf3a246ba042050ca35165a4d689eae4ccd25fb5c306f4f57a0" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x1dcf918975d43b00527a2b1256e2f4361558d273c45e8761b33429ea9f2c02de", @@ -3778,7 +5074,7 @@ }, "027-fork=Cancun-new_blobs=1-parent_blobs=4-header_excess_blobs_delta=1-correct:0xc0000-header:0xe0000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -3865,7 +5161,55 @@ { "rlp": "0xf902d3f90242a01dcf918975d43b00527a2b1256e2f4361558d273c45e8761b33429ea9f2c02dea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x1dcf918975d43b00527a2b1256e2f4361558d273c45e8761b33429ea9f2c02de", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x81dbd4064d93c5aab6fe38a32ee478918fba1c80fecdb865fb6bd87b06c0bdae" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x1dcf918975d43b00527a2b1256e2f4361558d273c45e8761b33429ea9f2c02de", @@ -3933,7 +5277,7 @@ }, "028-fork=Cancun-new_blobs=1-parent_blobs=4-header_excess_blobs_delta=2-correct:0xc0000-header:0x100000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -4020,7 +5364,55 @@ { "rlp": "0xf902d3f90242a01dcf918975d43b00527a2b1256e2f4361558d273c45e8761b33429ea9f2c02dea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083100000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x1dcf918975d43b00527a2b1256e2f4361558d273c45e8761b33429ea9f2c02de", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x100000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x5796db4972f4702931044a16ea470ce7979811cb4ba614f598c79f3162933216" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x1dcf918975d43b00527a2b1256e2f4361558d273c45e8761b33429ea9f2c02de", @@ -4088,7 +5480,7 @@ }, "029-fork=Cancun-new_blobs=1-parent_blobs=4-header_excess_blobs_delta=3-correct:0xc0000-header:0x120000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -4175,7 +5567,55 @@ { "rlp": "0xf902d3f90242a01dcf918975d43b00527a2b1256e2f4361558d273c45e8761b33429ea9f2c02dea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083120000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x1dcf918975d43b00527a2b1256e2f4361558d273c45e8761b33429ea9f2c02de", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x120000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xaaa0e83018503b6ba684b59c484f0ae0913d2c66c17cbaa58ee56826057fe26d" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x1dcf918975d43b00527a2b1256e2f4361558d273c45e8761b33429ea9f2c02de", @@ -4243,7 +5683,7 @@ }, "030-fork=Cancun-new_blobs=1-parent_blobs=5-header_excess_blobs_delta=-3-correct:0xe0000-header:0x80000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -4331,7 +5771,55 @@ { "rlp": "0xf902d3f90242a04f51ccb206e78b64fb7f6152cd4009981a775e4ad7d5cd4d15a3ff86bf43525ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083080000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x4f51ccb206e78b64fb7f6152cd4009981a775e4ad7d5cd4d15a3ff86bf43525e", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xbdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x080000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x4a20e26e16be55ffb69015d3c62a5b4f4da6ba060e840b70c1ba636dac1a7420" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x4f51ccb206e78b64fb7f6152cd4009981a775e4ad7d5cd4d15a3ff86bf43525e", @@ -4399,7 +5887,7 @@ }, "031-fork=Cancun-new_blobs=1-parent_blobs=5-header_excess_blobs_delta=-2-correct:0xe0000-header:0xa0000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -4487,7 +5975,55 @@ { "rlp": "0xf902d3f90242a04f51ccb206e78b64fb7f6152cd4009981a775e4ad7d5cd4d15a3ff86bf43525ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830a0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x4f51ccb206e78b64fb7f6152cd4009981a775e4ad7d5cd4d15a3ff86bf43525e", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xbdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0a0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x9fbda2fe93560b668f81a426a3898b0d902e8a2f4a525713ea6fa414c08d2c54" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x4f51ccb206e78b64fb7f6152cd4009981a775e4ad7d5cd4d15a3ff86bf43525e", @@ -4555,7 +6091,7 @@ }, "032-fork=Cancun-new_blobs=1-parent_blobs=5-header_excess_blobs_delta=-1-correct:0xe0000-header:0xc0000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -4643,7 +6179,55 @@ { "rlp": "0xf902d3f90242a04f51ccb206e78b64fb7f6152cd4009981a775e4ad7d5cd4d15a3ff86bf43525ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830c0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x4f51ccb206e78b64fb7f6152cd4009981a775e4ad7d5cd4d15a3ff86bf43525e", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xbdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0c0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x01914643f9df69a42a361b490836b2ac535c117561ed2bc9c6dfe538a3522c1e" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x4f51ccb206e78b64fb7f6152cd4009981a775e4ad7d5cd4d15a3ff86bf43525e", @@ -4711,7 +6295,7 @@ }, "033-fork=Cancun-new_blobs=1-parent_blobs=5-header_excess_blobs_delta=1-correct:0xe0000-header:0x100000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -4799,7 +6383,55 @@ { "rlp": "0xf902d3f90242a04f51ccb206e78b64fb7f6152cd4009981a775e4ad7d5cd4d15a3ff86bf43525ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083100000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x4f51ccb206e78b64fb7f6152cd4009981a775e4ad7d5cd4d15a3ff86bf43525e", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xbdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x100000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x53f8feb778c5a8a12999e1e283f86580ca1f939aec3e8bc3b1ebd6688133cd45" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x4f51ccb206e78b64fb7f6152cd4009981a775e4ad7d5cd4d15a3ff86bf43525e", @@ -4867,7 +6499,7 @@ }, "034-fork=Cancun-new_blobs=1-parent_blobs=5-header_excess_blobs_delta=2-correct:0xe0000-header:0x120000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -4955,7 +6587,55 @@ { "rlp": "0xf902d3f90242a04f51ccb206e78b64fb7f6152cd4009981a775e4ad7d5cd4d15a3ff86bf43525ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083120000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x4f51ccb206e78b64fb7f6152cd4009981a775e4ad7d5cd4d15a3ff86bf43525e", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xbdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x120000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xcd9c1275dd52932ec06145cb4d759a61184e1ad786f8d909304c5d88a3e2b63c" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x4f51ccb206e78b64fb7f6152cd4009981a775e4ad7d5cd4d15a3ff86bf43525e", @@ -5023,7 +6703,7 @@ }, "035-fork=Cancun-new_blobs=1-parent_blobs=5-header_excess_blobs_delta=3-correct:0xe0000-header:0x140000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -5111,7 +6791,55 @@ { "rlp": "0xf902d3f90242a04f51ccb206e78b64fb7f6152cd4009981a775e4ad7d5cd4d15a3ff86bf43525ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083140000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x4f51ccb206e78b64fb7f6152cd4009981a775e4ad7d5cd4d15a3ff86bf43525e", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xbdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x140000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xd30712caac1715aa7abc3b0b1513a017fdb474850bbacc9e3f35e674cc3c34be" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x4f51ccb206e78b64fb7f6152cd4009981a775e4ad7d5cd4d15a3ff86bf43525e", @@ -5179,7 +6907,7 @@ }, "036-fork=Cancun-new_blobs=1-parent_blobs=6-header_excess_blobs_delta=-3-correct:0x100000-header:0xa0000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -5268,7 +6996,55 @@ { "rlp": "0xf902d3f90242a01c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830a0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x1c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2e", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0a0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xaa70a27dfe4b618f47190331ed9fa3b04549c4f441aa2b411c2944a51f56497f" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x1c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2e", @@ -5336,7 +7112,7 @@ }, "037-fork=Cancun-new_blobs=1-parent_blobs=6-header_excess_blobs_delta=-2-correct:0x100000-header:0xc0000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -5425,7 +7201,55 @@ { "rlp": "0xf902d3f90242a01c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830c0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x1c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2e", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0c0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x3f5d65d9e335ab083575ed6dc011b5ce6925e397d982e887618307f8177b43a6" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x1c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2e", @@ -5493,7 +7317,7 @@ }, "038-fork=Cancun-new_blobs=1-parent_blobs=6-header_excess_blobs_delta=-1-correct:0x100000-header:0xe0000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -5582,7 +7406,55 @@ { "rlp": "0xf902d3f90242a01c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x1c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2e", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x9d205ca0795a646a3f07bd784f9aea3847b15507707411af94ee12df701eee91" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x1c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2e", @@ -5650,7 +7522,7 @@ }, "039-fork=Cancun-new_blobs=1-parent_blobs=6-header_excess_blobs_delta=1-correct:0x100000-header:0x120000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -5739,7 +7611,55 @@ { "rlp": "0xf902d3f90242a01c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083120000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x1c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2e", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x120000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x04022b55371e25f2a7fe8f942909a0335d33d598d118b3ad5d30948c4e069385" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x1c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2e", @@ -5807,7 +7727,7 @@ }, "040-fork=Cancun-new_blobs=1-parent_blobs=6-header_excess_blobs_delta=2-correct:0x100000-header:0x140000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -5896,7 +7816,55 @@ { "rlp": "0xf902d3f90242a01c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083140000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x1c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2e", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x140000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xded21ed01dc3ad27cee657f625423f13ad4f9145a42790fe43b44798fcb36be4" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x1c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2e", @@ -5964,7 +7932,7 @@ }, "041-fork=Cancun-new_blobs=1-parent_blobs=6-header_excess_blobs_delta=3-correct:0x100000-header:0x160000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -6053,7 +8021,55 @@ { "rlp": "0xf902d3f90242a01c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083160000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x1c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2e", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x160000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x3ff127126873bd983cba5609cbda84b3cefc41f3868710e86f5369e399e99f20" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x1c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2e", diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_excess_blob_gas_target_blobs_increase_from_zero.json b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_excess_blob_gas_target_blobs_increase_from_zero.json index d1f9a4db087..59eda0540a0 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_excess_blob_gas_target_blobs_increase_from_zero.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_excess_blob_gas_target_blobs_increase_from_zero.json @@ -1,7 +1,7 @@ { "000-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=0-header_excess_blobs_delta=1-correct:0x0-header:0x20000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -34,7 +34,55 @@ { "rlp": "0xf902d3f90242a0ce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x020000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x279a529129127a4a10458da09cbe14d709e2710e0542424605d426874f506d0d" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395", @@ -94,7 +142,7 @@ }, "001-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=0-header_excess_blobs_delta=2-correct:0x0-header:0x40000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -127,7 +175,55 @@ { "rlp": "0xf902d3f90242a0ce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083040000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x6e6d67adde0b863c310dc90ef7e540e2f6d115f73a9dde3749e17ebbc487cafd" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395", @@ -187,7 +283,7 @@ }, "002-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=0-header_excess_blobs_delta=3-correct:0x0-header:0x60000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -220,7 +316,55 @@ { "rlp": "0xf902d3f90242a0ce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083060000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x060000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x90f5d3db2868b920767af18c2766c4a90f63330ca2961b62cd26a4467f8321c6" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395", @@ -280,7 +424,7 @@ }, "003-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=0-header_excess_blobs_delta=4-correct:0x0-header:0x80000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -313,7 +457,55 @@ { "rlp": "0xf902d3f90242a0ce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083080000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x080000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xd472f9caabaa16d7a17602aaaeeca9b3bc56c314e1a2224491aa44c3e469d812" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395", @@ -373,7 +565,7 @@ }, "004-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=0-header_excess_blobs_delta=5-correct:0x0-header:0xa0000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -406,7 +598,55 @@ { "rlp": "0xf902d3f90242a0ce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830a0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0a0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x8dfc1d38019e27d67b17c92756c554706a55d8af40f2bd6cab2b524932313dc5" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395", @@ -466,7 +706,7 @@ }, "005-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=1-header_excess_blobs_delta=1-correct:0x0-header:0x20000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -550,7 +790,55 @@ { "rlp": "0xf902d3f90242a0e02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xe02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9c", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x020000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe1890a1874bab52cb38fd4da0e6385ab6281f483e793c197b1b3320353dee521" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xe02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9c", @@ -618,7 +906,7 @@ }, "006-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=1-header_excess_blobs_delta=2-correct:0x0-header:0x40000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -702,7 +990,55 @@ { "rlp": "0xf902d3f90242a0e02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083040000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xe02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9c", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xade2f23a18f8b480676f8ca81a6f3c3cc0fb9fed2f43fdb67fe70122c6f1acfb" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xe02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9c", @@ -770,7 +1106,7 @@ }, "007-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=1-header_excess_blobs_delta=3-correct:0x0-header:0x60000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -854,7 +1190,55 @@ { "rlp": "0xf902d3f90242a0e02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083060000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xe02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9c", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x060000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xb53ed3203d8286e094e2db61994b507b0694319ef7fc3b3c3c1f41783a7949d9" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xe02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9c", @@ -922,7 +1306,7 @@ }, "008-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=1-header_excess_blobs_delta=4-correct:0x0-header:0x80000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1006,7 +1390,55 @@ { "rlp": "0xf902d3f90242a0e02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083080000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xe02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9c", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x080000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xf8bfc313c18370fafa9337ec94e22b9d50b799c2ac483f99661291b2f9668875" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xe02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9c", @@ -1074,7 +1506,7 @@ }, "009-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=1-header_excess_blobs_delta=5-correct:0x0-header:0xa0000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1158,7 +1590,55 @@ { "rlp": "0xf902d3f90242a0e02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830a0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xe02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9c", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0a0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x82b82b6d42c728905355bc47cb94c4dad4fc5a68aab7926938b0dfa0e39ea112" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xe02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9c", @@ -1226,7 +1706,7 @@ }, "010-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=2-header_excess_blobs_delta=1-correct:0x0-header:0x20000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1311,7 +1791,55 @@ { "rlp": "0xf902d3f90242a08863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x8863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x020000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x7fedb9d82c174f9c82e221fc374a9c7d00f011772691eb47bbb6c760edf20bcd" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x8863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5", @@ -1379,7 +1907,7 @@ }, "011-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=2-header_excess_blobs_delta=2-correct:0x0-header:0x40000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1464,7 +1992,55 @@ { "rlp": "0xf902d3f90242a08863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083040000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x8863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x92a54bc4706324ae937f15fa268099125b97d9d82b4dfa9af24721bd056dab45" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x8863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5", @@ -1532,7 +2108,7 @@ }, "012-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=2-header_excess_blobs_delta=3-correct:0x0-header:0x60000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1617,7 +2193,55 @@ { "rlp": "0xf902d3f90242a08863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083060000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x8863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x060000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x4c55e88603f01ecb20f0d76ea3061b2b76ad3d44ade6228ceb1f6897102290f5" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x8863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5", @@ -1685,7 +2309,7 @@ }, "013-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=2-header_excess_blobs_delta=4-correct:0x0-header:0x80000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1770,7 +2394,55 @@ { "rlp": "0xf902d3f90242a08863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083080000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x8863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x080000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xd5a2bd674772fa846b13df678989662661ededb88e1296488a8282c10478c592" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x8863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5", @@ -1838,7 +2510,7 @@ }, "014-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=2-header_excess_blobs_delta=5-correct:0x0-header:0xa0000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1923,7 +2595,55 @@ { "rlp": "0xf902d3f90242a08863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830a0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x8863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0a0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xd5e84bee1b05a3edecacb7819a648332b4595b6cfb590529979fb8931b03073a" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x8863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5", @@ -1991,7 +2711,7 @@ }, "015-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=3-header_excess_blobs_delta=1-correct:0x0-header:0x20000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2077,7 +2797,55 @@ { "rlp": "0xf902d3f90242a01e8a3361d81ff2f558ac4400bfd7da67b4b7dd1236f84fc7357bf27f5545f266a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x1e8a3361d81ff2f558ac4400bfd7da67b4b7dd1236f84fc7357bf27f5545f266", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x020000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x54b362e74b481c7c0217ccbc115b19dab35b1190f70af84434a697b23c1f29c0" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x1e8a3361d81ff2f558ac4400bfd7da67b4b7dd1236f84fc7357bf27f5545f266", @@ -2145,7 +2913,7 @@ }, "016-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=3-header_excess_blobs_delta=2-correct:0x0-header:0x40000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2231,7 +2999,55 @@ { "rlp": "0xf902d3f90242a01e8a3361d81ff2f558ac4400bfd7da67b4b7dd1236f84fc7357bf27f5545f266a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083040000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x1e8a3361d81ff2f558ac4400bfd7da67b4b7dd1236f84fc7357bf27f5545f266", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x0b899666c3eb7b5c3fc5901efe152ba5b556eead7be85a2078131ec8ebf3be12" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x1e8a3361d81ff2f558ac4400bfd7da67b4b7dd1236f84fc7357bf27f5545f266", @@ -2299,7 +3115,7 @@ }, "017-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=3-header_excess_blobs_delta=3-correct:0x0-header:0x60000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2385,7 +3201,55 @@ { "rlp": "0xf902d3f90242a01e8a3361d81ff2f558ac4400bfd7da67b4b7dd1236f84fc7357bf27f5545f266a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083060000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x1e8a3361d81ff2f558ac4400bfd7da67b4b7dd1236f84fc7357bf27f5545f266", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x060000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x5edd1bc4bbe2a421f653edafc1f8d007e98b92a97c814b0725e4516f60a313b9" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x1e8a3361d81ff2f558ac4400bfd7da67b4b7dd1236f84fc7357bf27f5545f266", @@ -2453,7 +3317,7 @@ }, "018-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=3-header_excess_blobs_delta=4-correct:0x0-header:0x80000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2539,7 +3403,55 @@ { "rlp": "0xf902d3f90242a01e8a3361d81ff2f558ac4400bfd7da67b4b7dd1236f84fc7357bf27f5545f266a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083080000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x1e8a3361d81ff2f558ac4400bfd7da67b4b7dd1236f84fc7357bf27f5545f266", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x080000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa7fcf925c270e3d2632dce16b238e9bb5840dfd5a00fd0b40371255833a7ffa7" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x1e8a3361d81ff2f558ac4400bfd7da67b4b7dd1236f84fc7357bf27f5545f266", @@ -2607,7 +3519,7 @@ }, "019-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=3-header_excess_blobs_delta=5-correct:0x0-header:0xa0000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2693,7 +3605,55 @@ { "rlp": "0xf902d3f90242a01e8a3361d81ff2f558ac4400bfd7da67b4b7dd1236f84fc7357bf27f5545f266a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830a0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x1e8a3361d81ff2f558ac4400bfd7da67b4b7dd1236f84fc7357bf27f5545f266", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0a0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x9addc6900ea55030f22a4e4ec0bafa26a2a01dbc49ff4a4d93f07a0f46b7c924" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x1e8a3361d81ff2f558ac4400bfd7da67b4b7dd1236f84fc7357bf27f5545f266", diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_negative_excess_blob_gas.json b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_negative_excess_blob_gas.json index 48bb9a13b95..a0874a28e81 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_negative_excess_blob_gas.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_negative_excess_blob_gas.json @@ -1,7 +1,7 @@ { "000-fork=Cancun-parent_excess_blobs=0-new_blobs=1-parent_blobs=0-header_excess_blob_gas=18446744073709158400-correct:0x0-header:0xfffffffffffa0000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -34,7 +34,55 @@ { "rlp": "0xf902d8f90247a0ce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffa0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0xfffffffffffa0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x7dff2c672335720232c3165f02fd59147bece4da6726ee4489519a93e25f44bc" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395", @@ -94,7 +142,7 @@ }, "001-fork=Cancun-parent_excess_blobs=0-new_blobs=1-parent_blobs=0-header_excess_blob_gas=18446744073709289472-correct:0x0-header:0xfffffffffffc0000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -127,7 +175,55 @@ { "rlp": "0xf902d8f90247a0ce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffc0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0xfffffffffffc0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x0cfae36c8af526e9ec689009390067a8d23eff90c90b66660349a97e190431a3" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395", @@ -187,7 +283,7 @@ }, "002-fork=Cancun-parent_excess_blobs=0-new_blobs=1-parent_blobs=0-header_excess_blob_gas=18446744073709420544-correct:0x0-header:0xfffffffffffe0000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -220,7 +316,55 @@ { "rlp": "0xf902d8f90247a0ce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffe0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0xfffffffffffe0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xd7594d92dc2ed600c9238f63d5594b41ba3debd8318a292412c45bd0f95570a9" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395", @@ -280,7 +424,7 @@ }, "003-fork=Cancun-parent_excess_blobs=0-new_blobs=1-parent_blobs=1-header_excess_blob_gas=18446744073709158400-correct:0x0-header:0xfffffffffffa0000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -364,7 +508,55 @@ { "rlp": "0xf902d8f90247a0e02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffa0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xe02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9c", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0xfffffffffffa0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x4f5de42ad8ab2374e99e02c5349b8ccf9c711de250a9306c8aeb59f8e71e64b4" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xe02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9c", @@ -432,7 +624,7 @@ }, "004-fork=Cancun-parent_excess_blobs=0-new_blobs=1-parent_blobs=1-header_excess_blob_gas=18446744073709289472-correct:0x0-header:0xfffffffffffc0000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -516,7 +708,55 @@ { "rlp": "0xf902d8f90247a0e02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffc0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xe02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9c", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0xfffffffffffc0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x00aea39a5bac3cb28ef99fddfc1af2f4636e37bd9587635501c89928fdca2b0d" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xe02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9c", @@ -584,7 +824,7 @@ }, "005-fork=Cancun-parent_excess_blobs=0-new_blobs=1-parent_blobs=1-header_excess_blob_gas=18446744073709420544-correct:0x0-header:0xfffffffffffe0000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -668,7 +908,55 @@ { "rlp": "0xf902d8f90247a0e02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffe0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xe02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9c", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0xfffffffffffe0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x1c035f687d79a682e8907a0b6e3b0514d036dc37e59f3eeed3e5c9ff492b2bea" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xe02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9c", @@ -736,7 +1024,7 @@ }, "006-fork=Cancun-parent_excess_blobs=0-new_blobs=1-parent_blobs=2-header_excess_blob_gas=18446744073709158400-correct:0x0-header:0xfffffffffffa0000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -821,7 +1109,55 @@ { "rlp": "0xf902d8f90247a08863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffa0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x8863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0xfffffffffffa0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x637eaf7f1f8cdeff2b3b2c37bfdf2a8c0350bc7d8786205171e05ae652606aad" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x8863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5", @@ -889,7 +1225,7 @@ }, "007-fork=Cancun-parent_excess_blobs=0-new_blobs=1-parent_blobs=2-header_excess_blob_gas=18446744073709289472-correct:0x0-header:0xfffffffffffc0000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -974,7 +1310,55 @@ { "rlp": "0xf902d8f90247a08863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffc0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x8863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0xfffffffffffc0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x438ce03a67260dc80c2c246a4d6dfceb46573a6f8015972cd60136e227de0d31" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x8863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5", @@ -1042,7 +1426,7 @@ }, "008-fork=Cancun-parent_excess_blobs=0-new_blobs=1-parent_blobs=2-header_excess_blob_gas=18446744073709420544-correct:0x0-header:0xfffffffffffe0000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1127,7 +1511,55 @@ { "rlp": "0xf902d8f90247a08863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffe0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x8863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0xfffffffffffe0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xd7b8ae067b3f6cef3a4744ae0c5a4fd63cb5036195f970515877cd6e87c7b370" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x8863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5", @@ -1195,7 +1627,7 @@ }, "009-fork=Cancun-parent_excess_blobs=1-new_blobs=1-parent_blobs=0-header_excess_blob_gas=18446744073709158400-correct:0x0-header:0xfffffffffffa0000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1228,7 +1660,55 @@ { "rlp": "0xf902d8f90247a0eb90cafe6c2b51d7d369658031a5b6a0b075385f5e2e5b991ac8c1ebf0fdb47fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffa0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xeb90cafe6c2b51d7d369658031a5b6a0b075385f5e2e5b991ac8c1ebf0fdb47f", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0xfffffffffffa0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x251daf4d10e7317d32d196f677d28f22d364fca98bbba460bf5638bcc222e271" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xeb90cafe6c2b51d7d369658031a5b6a0b075385f5e2e5b991ac8c1ebf0fdb47f", @@ -1288,7 +1768,7 @@ }, "010-fork=Cancun-parent_excess_blobs=1-new_blobs=1-parent_blobs=0-header_excess_blob_gas=18446744073709289472-correct:0x0-header:0xfffffffffffc0000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1321,7 +1801,55 @@ { "rlp": "0xf902d8f90247a0eb90cafe6c2b51d7d369658031a5b6a0b075385f5e2e5b991ac8c1ebf0fdb47fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffc0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xeb90cafe6c2b51d7d369658031a5b6a0b075385f5e2e5b991ac8c1ebf0fdb47f", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0xfffffffffffc0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe458b2300ccdbfee5991c2edf5ae3fd25590bb2fee98c4146df0dba6effddbca" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xeb90cafe6c2b51d7d369658031a5b6a0b075385f5e2e5b991ac8c1ebf0fdb47f", @@ -1381,7 +1909,7 @@ }, "011-fork=Cancun-parent_excess_blobs=1-new_blobs=1-parent_blobs=0-header_excess_blob_gas=18446744073709420544-correct:0x0-header:0xfffffffffffe0000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1414,7 +1942,55 @@ { "rlp": "0xf902d8f90247a0eb90cafe6c2b51d7d369658031a5b6a0b075385f5e2e5b991ac8c1ebf0fdb47fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffe0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xeb90cafe6c2b51d7d369658031a5b6a0b075385f5e2e5b991ac8c1ebf0fdb47f", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0xfffffffffffe0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xdf9c1511da850a12a552a12e8764e15a9008cecd5b4665d017ecc4dc8422ce0d" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xeb90cafe6c2b51d7d369658031a5b6a0b075385f5e2e5b991ac8c1ebf0fdb47f", @@ -1474,7 +2050,7 @@ }, "012-fork=Cancun-parent_excess_blobs=1-new_blobs=1-parent_blobs=1-header_excess_blob_gas=18446744073709158400-correct:0x0-header:0xfffffffffffa0000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1558,7 +2134,55 @@ { "rlp": "0xf902d8f90247a076f9967913b94d82d43b4b5c539cd49fa4aca0c9d543d959375d22970b6ed242a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffa0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x76f9967913b94d82d43b4b5c539cd49fa4aca0c9d543d959375d22970b6ed242", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0xfffffffffffa0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x98b58823c8a484f7fd5f3443f2f73ebc7a29296e7c8b8147bbdc76403117e46f" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x76f9967913b94d82d43b4b5c539cd49fa4aca0c9d543d959375d22970b6ed242", @@ -1626,7 +2250,7 @@ }, "013-fork=Cancun-parent_excess_blobs=1-new_blobs=1-parent_blobs=1-header_excess_blob_gas=18446744073709289472-correct:0x0-header:0xfffffffffffc0000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1710,7 +2334,55 @@ { "rlp": "0xf902d8f90247a076f9967913b94d82d43b4b5c539cd49fa4aca0c9d543d959375d22970b6ed242a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffc0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x76f9967913b94d82d43b4b5c539cd49fa4aca0c9d543d959375d22970b6ed242", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0xfffffffffffc0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x1524e1b58870ac8817c0912c1595600ec745a047637b6629d382b0d952664440" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x76f9967913b94d82d43b4b5c539cd49fa4aca0c9d543d959375d22970b6ed242", @@ -1778,7 +2450,7 @@ }, "014-fork=Cancun-parent_excess_blobs=1-new_blobs=1-parent_blobs=1-header_excess_blob_gas=18446744073709420544-correct:0x0-header:0xfffffffffffe0000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1862,7 +2534,55 @@ { "rlp": "0xf902d8f90247a076f9967913b94d82d43b4b5c539cd49fa4aca0c9d543d959375d22970b6ed242a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffe0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x76f9967913b94d82d43b4b5c539cd49fa4aca0c9d543d959375d22970b6ed242", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0xfffffffffffe0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xb22aa9359891c509d3da3f1fe616caff49fd83f7c27b88eeaee2c2d51f4ac84b" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x76f9967913b94d82d43b4b5c539cd49fa4aca0c9d543d959375d22970b6ed242", @@ -1930,7 +2650,7 @@ }, "015-fork=Cancun-parent_excess_blobs=1-new_blobs=1-parent_blobs=2-header_excess_blob_gas=18446744073709158400-correct:0x0-header:0xfffffffffffa0000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2015,7 +2735,55 @@ { "rlp": "0xf902d8f90247a0db2e5598fb872eeaa6eb6a28838e75d4ffa415b6ffde815d9aac07c0da73c96ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffa0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xdb2e5598fb872eeaa6eb6a28838e75d4ffa415b6ffde815d9aac07c0da73c96b", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0xfffffffffffa0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe79d8035636e9db7915177db23263bb1fe28a6c9519e4e330b28d6d91da66388" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xdb2e5598fb872eeaa6eb6a28838e75d4ffa415b6ffde815d9aac07c0da73c96b", @@ -2083,7 +2851,7 @@ }, "016-fork=Cancun-parent_excess_blobs=1-new_blobs=1-parent_blobs=2-header_excess_blob_gas=18446744073709289472-correct:0x0-header:0xfffffffffffc0000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2168,7 +2936,55 @@ { "rlp": "0xf902d8f90247a0db2e5598fb872eeaa6eb6a28838e75d4ffa415b6ffde815d9aac07c0da73c96ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffc0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xdb2e5598fb872eeaa6eb6a28838e75d4ffa415b6ffde815d9aac07c0da73c96b", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0xfffffffffffc0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x137348e9d827671fa088364f0b29913e815f6da7cdfb34ab0a7f348f9b682eca" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xdb2e5598fb872eeaa6eb6a28838e75d4ffa415b6ffde815d9aac07c0da73c96b", @@ -2236,7 +3052,7 @@ }, "017-fork=Cancun-parent_excess_blobs=1-new_blobs=1-parent_blobs=2-header_excess_blob_gas=18446744073709420544-correct:0x0-header:0xfffffffffffe0000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2321,7 +3137,55 @@ { "rlp": "0xf902d8f90247a0db2e5598fb872eeaa6eb6a28838e75d4ffa415b6ffde815d9aac07c0da73c96ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffe0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xdb2e5598fb872eeaa6eb6a28838e75d4ffa415b6ffde815d9aac07c0da73c96b", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0xfffffffffffe0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x9cb881bd97b6708160887f26c964321d3a40d6d5dce14b3ba1892922fd196c91" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xdb2e5598fb872eeaa6eb6a28838e75d4ffa415b6ffde815d9aac07c0da73c96b", @@ -2389,7 +3253,7 @@ }, "018-fork=Cancun-parent_excess_blobs=2-new_blobs=1-parent_blobs=0-header_excess_blob_gas=18446744073709158400-correct:0x0-header:0xfffffffffffa0000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2422,7 +3286,55 @@ { "rlp": "0xf902d8f90247a054fc4e1ef90ea8eb3f13ad45ad42fd7f9307c0084a9f8c352a7350f355674608a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffa0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x54fc4e1ef90ea8eb3f13ad45ad42fd7f9307c0084a9f8c352a7350f355674608", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0xfffffffffffa0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x151720d532377171a5d7c7eb65460d2cb0e19d25057a5c94fa5fdcf559ee2abc" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x54fc4e1ef90ea8eb3f13ad45ad42fd7f9307c0084a9f8c352a7350f355674608", @@ -2482,7 +3394,7 @@ }, "019-fork=Cancun-parent_excess_blobs=2-new_blobs=1-parent_blobs=0-header_excess_blob_gas=18446744073709289472-correct:0x0-header:0xfffffffffffc0000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2515,7 +3427,55 @@ { "rlp": "0xf902d8f90247a054fc4e1ef90ea8eb3f13ad45ad42fd7f9307c0084a9f8c352a7350f355674608a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffc0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x54fc4e1ef90ea8eb3f13ad45ad42fd7f9307c0084a9f8c352a7350f355674608", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0xfffffffffffc0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa083d462f70a9618101f74ec6e99b27464e7dcc077c36a2080ab5eab8c15d2ca" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x54fc4e1ef90ea8eb3f13ad45ad42fd7f9307c0084a9f8c352a7350f355674608", @@ -2575,7 +3535,7 @@ }, "020-fork=Cancun-parent_excess_blobs=2-new_blobs=1-parent_blobs=0-header_excess_blob_gas=18446744073709420544-correct:0x0-header:0xfffffffffffe0000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2608,7 +3568,55 @@ { "rlp": "0xf902d8f90247a054fc4e1ef90ea8eb3f13ad45ad42fd7f9307c0084a9f8c352a7350f355674608a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffe0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x54fc4e1ef90ea8eb3f13ad45ad42fd7f9307c0084a9f8c352a7350f355674608", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0xfffffffffffe0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x4041fa015ad4e9b2ce2f431479d606ec6234d79c270d8019cce253ee3abdd32e" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x54fc4e1ef90ea8eb3f13ad45ad42fd7f9307c0084a9f8c352a7350f355674608", @@ -2668,7 +3676,7 @@ }, "021-fork=Cancun-parent_excess_blobs=2-new_blobs=1-parent_blobs=1-header_excess_blob_gas=18446744073709158400-correct:0x0-header:0xfffffffffffa0000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2752,7 +3760,55 @@ { "rlp": "0xf902d8f90247a041f8a21474e177782a7f068285b53a9a92de05b40da191c944f6ff6d892ec781a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffa0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x41f8a21474e177782a7f068285b53a9a92de05b40da191c944f6ff6d892ec781", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0xfffffffffffa0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xed3260b4f94f3d2d34ec58df7b15623f917bf37dde231b0cc9a9e38517e28df4" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x41f8a21474e177782a7f068285b53a9a92de05b40da191c944f6ff6d892ec781", @@ -2820,7 +3876,7 @@ }, "022-fork=Cancun-parent_excess_blobs=2-new_blobs=1-parent_blobs=1-header_excess_blob_gas=18446744073709289472-correct:0x0-header:0xfffffffffffc0000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2904,7 +3960,55 @@ { "rlp": "0xf902d8f90247a041f8a21474e177782a7f068285b53a9a92de05b40da191c944f6ff6d892ec781a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffc0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x41f8a21474e177782a7f068285b53a9a92de05b40da191c944f6ff6d892ec781", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0xfffffffffffc0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x27916b37dfe5b22437e1fe11ba5550227d1078217e51107bc3b5ec1e2fbedd53" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x41f8a21474e177782a7f068285b53a9a92de05b40da191c944f6ff6d892ec781", @@ -2972,7 +4076,7 @@ }, "023-fork=Cancun-parent_excess_blobs=2-new_blobs=1-parent_blobs=1-header_excess_blob_gas=18446744073709420544-correct:0x0-header:0xfffffffffffe0000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -3056,7 +4160,55 @@ { "rlp": "0xf902d8f90247a041f8a21474e177782a7f068285b53a9a92de05b40da191c944f6ff6d892ec781a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffe0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x41f8a21474e177782a7f068285b53a9a92de05b40da191c944f6ff6d892ec781", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0xfffffffffffe0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe9ef5e1315660d647379956b1ca6ac321819f20b765f9a4bea7c641f9360a23f" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x41f8a21474e177782a7f068285b53a9a92de05b40da191c944f6ff6d892ec781", @@ -3124,7 +4276,7 @@ }, "024-fork=Cancun-parent_excess_blobs=2-new_blobs=1-parent_blobs=2-header_excess_blob_gas=18446744073709158400-correct:0x20000-header:0xfffffffffffa0000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -3209,7 +4361,55 @@ { "rlp": "0xf902d8f90247a0e5d722b0ca7c67f033da749dea193030248d3d14ba965f685990e8562a10d2bca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffa0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xe5d722b0ca7c67f033da749dea193030248d3d14ba965f685990e8562a10d2bc", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0xfffffffffffa0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x3647bbbc02ff7e100754f2fd75b3898ccb07aee8789990ef85f14f5f911e7588" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xe5d722b0ca7c67f033da749dea193030248d3d14ba965f685990e8562a10d2bc", @@ -3277,7 +4477,7 @@ }, "025-fork=Cancun-parent_excess_blobs=2-new_blobs=1-parent_blobs=2-header_excess_blob_gas=18446744073709289472-correct:0x20000-header:0xfffffffffffc0000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -3362,7 +4562,55 @@ { "rlp": "0xf902d8f90247a0e5d722b0ca7c67f033da749dea193030248d3d14ba965f685990e8562a10d2bca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffc0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xe5d722b0ca7c67f033da749dea193030248d3d14ba965f685990e8562a10d2bc", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0xfffffffffffc0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x120c63037cc27944cf99be4cf7e3cc4b5a840dcc60c226085d61e0b9c6a17b1c" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xe5d722b0ca7c67f033da749dea193030248d3d14ba965f685990e8562a10d2bc", @@ -3430,7 +4678,7 @@ }, "026-fork=Cancun-parent_excess_blobs=2-new_blobs=1-parent_blobs=2-header_excess_blob_gas=18446744073709420544-correct:0x20000-header:0xfffffffffffe0000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -3515,7 +4763,55 @@ { "rlp": "0xf902d8f90247a0e5d722b0ca7c67f033da749dea193030248d3d14ba965f685990e8562a10d2bca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffe0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xe5d722b0ca7c67f033da749dea193030248d3d14ba965f685990e8562a10d2bc", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0xfffffffffffe0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x9be3f8f0119a75c43501be2dab131593348351d7369ea1bd63049202858bbf27" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xe5d722b0ca7c67f033da749dea193030248d3d14ba965f685990e8562a10d2bc", diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_non_multiple_excess_blob_gas.json b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_non_multiple_excess_blob_gas.json index a074dfa4eb3..d0a3f3ba748 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_non_multiple_excess_blob_gas.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_non_multiple_excess_blob_gas.json @@ -1,7 +1,7 @@ { "000-fork=Cancun-parent_excess_blobs=4-new_blobs=1-parent_blobs=4-header_excess_blob_gas_delta=1-correct:0xa0000-header:0xa0001": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -88,7 +88,55 @@ { "rlp": "0xf902d3f90242a051084154e8e8b86128acbaa62e16c38a57790f7d648f6b8cab38901937383f92a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830a0001a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x51084154e8e8b86128acbaa62e16c38a57790f7d648f6b8cab38901937383f92", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0a0001", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x888935fe8f8d9b54b63ec265c25278030a5a6edd1ba5fb9c0f1a99c8b70668ca" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x51084154e8e8b86128acbaa62e16c38a57790f7d648f6b8cab38901937383f92", @@ -156,7 +204,7 @@ }, "001-fork=Cancun-parent_excess_blobs=4-new_blobs=1-parent_blobs=4-header_excess_blob_gas_delta=131071-correct:0xa0000-header:0xbffff": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -243,7 +291,55 @@ { "rlp": "0xf902d3f90242a051084154e8e8b86128acbaa62e16c38a57790f7d648f6b8cab38901937383f92a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830bffffa00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x51084154e8e8b86128acbaa62e16c38a57790f7d648f6b8cab38901937383f92", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0bffff", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xd6481397c07cd3d92a1cb540f6a6fcd42b240ab77eada4d61ed21ff55c9a610e" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x51084154e8e8b86128acbaa62e16c38a57790f7d648f6b8cab38901937383f92", @@ -311,7 +407,7 @@ }, "002-fork=Cancun-parent_excess_blobs=4-new_blobs=1-parent_blobs=2-header_excess_blob_gas_delta=-1-correct:0x60000-header:0x5ffff": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -396,7 +492,55 @@ { "rlp": "0xf902d3f90242a01ade598e7950abb5a3e0320270cc3eda6c937abeae599911395b258227d25389a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830200008305ffffa00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x1ade598e7950abb5a3e0320270cc3eda6c937abeae599911395b258227d25389", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x05ffff", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xc62968c5d3520c661fdb0ad8d22eec817b51ca591a08b03bf11266a3ced90f1e" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x1ade598e7950abb5a3e0320270cc3eda6c937abeae599911395b258227d25389", @@ -464,7 +608,7 @@ }, "003-fork=Cancun-parent_excess_blobs=4-new_blobs=1-parent_blobs=2-header_excess_blob_gas_delta=-131071-correct:0x60000-header:0x40001": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -549,7 +693,55 @@ { "rlp": "0xf902d3f90242a01ade598e7950abb5a3e0320270cc3eda6c937abeae599911395b258227d25389a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083040001a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x1ade598e7950abb5a3e0320270cc3eda6c937abeae599911395b258227d25389", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x040001", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x8681cf4b0a9a3cd3b9f0c8a5ce7d3820af9e90626d30b0d2ac118bd0db18f14d" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x1ade598e7950abb5a3e0320270cc3eda6c937abeae599911395b258227d25389", diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_static_excess_blob_gas.json b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_static_excess_blob_gas.json index 54eabc34e98..fd096c52283 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_static_excess_blob_gas.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_static_excess_blob_gas.json @@ -1,7 +1,7 @@ { "000-fork=Cancun-new_blobs=1-parent_excess_blobs=1-parent_blobs=0-correct:0x0-header:0x20000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -34,7 +34,55 @@ { "rlp": "0xf902d3f90242a0eb90cafe6c2b51d7d369658031a5b6a0b075385f5e2e5b991ac8c1ebf0fdb47fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xeb90cafe6c2b51d7d369658031a5b6a0b075385f5e2e5b991ac8c1ebf0fdb47f", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x020000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x7c9c5e52f5ac8e2863ab84062fbb8c899eb33a547faef3d11829a6e42361df2d" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xeb90cafe6c2b51d7d369658031a5b6a0b075385f5e2e5b991ac8c1ebf0fdb47f", @@ -94,7 +142,7 @@ }, "001-fork=Cancun-new_blobs=1-parent_excess_blobs=1-parent_blobs=1-correct:0x0-header:0x20000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -178,7 +226,55 @@ { "rlp": "0xf902d3f90242a076f9967913b94d82d43b4b5c539cd49fa4aca0c9d543d959375d22970b6ed242a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x76f9967913b94d82d43b4b5c539cd49fa4aca0c9d543d959375d22970b6ed242", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x020000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x9957f93f58e39671569c14219543849a07a96a92f38f86cdbcd8b0f69449d552" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x76f9967913b94d82d43b4b5c539cd49fa4aca0c9d543d959375d22970b6ed242", @@ -246,7 +342,7 @@ }, "002-fork=Cancun-new_blobs=1-parent_excess_blobs=1-parent_blobs=2-correct:0x0-header:0x20000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -331,7 +427,55 @@ { "rlp": "0xf902d3f90242a0db2e5598fb872eeaa6eb6a28838e75d4ffa415b6ffde815d9aac07c0da73c96ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xdb2e5598fb872eeaa6eb6a28838e75d4ffa415b6ffde815d9aac07c0da73c96b", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x020000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa2edc9acd7bffeab6a4b3f00d9b2c95308d66d713007e39fe810d813a53cd0f2" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xdb2e5598fb872eeaa6eb6a28838e75d4ffa415b6ffde815d9aac07c0da73c96b", @@ -399,7 +543,7 @@ }, "003-fork=Cancun-new_blobs=1-parent_excess_blobs=1-parent_blobs=4-correct:0x40000-header:0x20000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -486,7 +630,55 @@ { "rlp": "0xf902d3f90242a0036e708b4528a814835a72fbb148694d07237a3f0db97691da1adeee49420035a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x036e708b4528a814835a72fbb148694d07237a3f0db97691da1adeee49420035", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x020000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x8deecf6fd484f4f96c5d4973082912e4a2f143ca752583eef60df72521003c81" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x036e708b4528a814835a72fbb148694d07237a3f0db97691da1adeee49420035", @@ -554,7 +746,7 @@ }, "004-fork=Cancun-new_blobs=1-parent_excess_blobs=1-parent_blobs=5-correct:0x60000-header:0x20000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -642,7 +834,55 @@ { "rlp": "0xf902d3f90242a0a8c295e55b3024f0fb489b72e8451833c2410e1848436a7cc8c5b9f2f66f2c9ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xa8c295e55b3024f0fb489b72e8451833c2410e1848436a7cc8c5b9f2f66f2c9e", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xbdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x020000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xf99ebc0b09f18a8b31200fcef85c41f92dbc73df644ca81e86261d7a045cc8c8" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xa8c295e55b3024f0fb489b72e8451833c2410e1848436a7cc8c5b9f2f66f2c9e", @@ -710,7 +950,7 @@ }, "005-fork=Cancun-new_blobs=1-parent_excess_blobs=1-parent_blobs=6-correct:0x80000-header:0x20000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -799,7 +1039,55 @@ { "rlp": "0xf902d3f90242a0185b79ac0612932a76f64bbaa6a0e4edc5c487fb3c17563e6d50f13366a84448a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x185b79ac0612932a76f64bbaa6a0e4edc5c487fb3c17563e6d50f13366a84448", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x020000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xc22e29fafd25d5c367e3ff074f522c77cfc495af6671a72e6988cf7bcc0e63bb" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x185b79ac0612932a76f64bbaa6a0e4edc5c487fb3c17563e6d50f13366a84448", @@ -867,7 +1155,7 @@ }, "006-fork=Cancun-new_blobs=1-parent_excess_blobs=3-parent_blobs=0-correct:0x0-header:0x60000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -900,7 +1188,55 @@ { "rlp": "0xf902d3f90242a0510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083060000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x060000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x66fb11e49ba8e9a947ccf328dbeb2df52f3f9859a456370058ccae1f24b6e03b" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66a", @@ -960,7 +1296,7 @@ }, "007-fork=Cancun-new_blobs=1-parent_excess_blobs=3-parent_blobs=1-correct:0x20000-header:0x60000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1044,7 +1380,55 @@ { "rlp": "0xf902d3f90242a0d6f1e3eff07c1bdd30620d96f20fd371725bb5c466a82cd4f8a0213f1fe6ce94a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083060000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xd6f1e3eff07c1bdd30620d96f20fd371725bb5c466a82cd4f8a0213f1fe6ce94", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x060000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x094cfcffdf918126ebffd53fe9915620e48f71ef64cd18c0ba8dbe6635dfbba4" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xd6f1e3eff07c1bdd30620d96f20fd371725bb5c466a82cd4f8a0213f1fe6ce94", @@ -1112,7 +1496,7 @@ }, "008-fork=Cancun-new_blobs=1-parent_excess_blobs=3-parent_blobs=2-correct:0x40000-header:0x60000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1197,7 +1581,55 @@ { "rlp": "0xf902d3f90242a0d9a0dee0d377b5eb687005c5a96a63e7e35b7b7d54d585aad6c8e1b69332d1e8a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083060000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xd9a0dee0d377b5eb687005c5a96a63e7e35b7b7d54d585aad6c8e1b69332d1e8", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x060000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x86bb8646a4c26823a6a8f1cf56cb78509501cb206ca3ea7cbee1fd7005ebb6d6" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xd9a0dee0d377b5eb687005c5a96a63e7e35b7b7d54d585aad6c8e1b69332d1e8", @@ -1265,7 +1697,7 @@ }, "009-fork=Cancun-new_blobs=1-parent_excess_blobs=3-parent_blobs=4-correct:0x80000-header:0x60000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1352,7 +1784,55 @@ { "rlp": "0xf902d3f90242a05a7756b533f4334dc9ef85b0b2293dbf75f86de61a8a34a7430dacb7bf05023fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083060000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x5a7756b533f4334dc9ef85b0b2293dbf75f86de61a8a34a7430dacb7bf05023f", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x060000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x9506ae1d339b490315a40b5d56abcbcf541fb870842dae738c22f670edf4ec8b" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x5a7756b533f4334dc9ef85b0b2293dbf75f86de61a8a34a7430dacb7bf05023f", @@ -1420,7 +1900,7 @@ }, "010-fork=Cancun-new_blobs=1-parent_excess_blobs=3-parent_blobs=5-correct:0xa0000-header:0x60000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1508,7 +1988,55 @@ { "rlp": "0xf902d3f90242a020e0c9d9a8f852a1540167221184732ac0ab689ea46bb7c01fca6bfd7668944ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083060000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x20e0c9d9a8f852a1540167221184732ac0ab689ea46bb7c01fca6bfd7668944e", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xbdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x060000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xfe69cf54660058df13fda3a799b90fcf37623edbf8dd14ed31e59951b6de332b" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x20e0c9d9a8f852a1540167221184732ac0ab689ea46bb7c01fca6bfd7668944e", @@ -1576,7 +2104,7 @@ }, "011-fork=Cancun-new_blobs=1-parent_excess_blobs=3-parent_blobs=6-correct:0xc0000-header:0x60000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1665,7 +2193,55 @@ { "rlp": "0xf902d3f90242a0e88920f06d350b88d59f3247bbbd43bc6d394292105caec59dcee7c041950a85a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083060000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xe88920f06d350b88d59f3247bbbd43bc6d394292105caec59dcee7c041950a85", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x060000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x77ac223e52df1d5f4f02cd3cd182f21c5003dd2e52e79c30ef875a9ac1d0ee85" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xe88920f06d350b88d59f3247bbbd43bc6d394292105caec59dcee7c041950a85", diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_static_excess_blob_gas_from_zero_on_blobs_above_target.json b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_static_excess_blob_gas_from_zero_on_blobs_above_target.json index ba2c49873d0..b8739ae16bc 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_static_excess_blob_gas_from_zero_on_blobs_above_target.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_static_excess_blob_gas_from_zero_on_blobs_above_target.json @@ -1,7 +1,7 @@ { "000-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=4-header_excess_blob_gas=0-correct:0x20000-header:0x0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -88,7 +88,55 @@ { "rlp": "0xf902d0f9023fa0105d6a86b391b112ba985b0d66b13af26782284626c970c27e5218229e17dc95a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x105d6a86b391b112ba985b0d66b13af26782284626c970c27e5218229e17dc95", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xff5bb957ccb75a6ed36fc826460614bc26f45f1289a363686a07cb311a441ed1" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x105d6a86b391b112ba985b0d66b13af26782284626c970c27e5218229e17dc95", @@ -156,7 +204,7 @@ }, "001-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=5-header_excess_blob_gas=0-correct:0x40000-header:0x0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -244,7 +292,55 @@ { "rlp": "0xf902d0f9023fa01311c331d797c47d6e328fe612ed2290bd5fb28c62b870690c56d30085bb393da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x1311c331d797c47d6e328fe612ed2290bd5fb28c62b870690c56d30085bb393d", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xbdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xb5b598f5a6c74524df90cbd5ce87506302e3d24e7edb2f11b6889164894169fb" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x1311c331d797c47d6e328fe612ed2290bd5fb28c62b870690c56d30085bb393d", @@ -312,7 +408,7 @@ }, "002-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=6-header_excess_blob_gas=0-correct:0x60000-header:0x0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -401,7 +497,55 @@ { "rlp": "0xf902d0f9023fa0ec936ff6f19523f22bf047d24e0b35a61b5ad3351ad4262a180615f4902ece71a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xec936ff6f19523f22bf047d24e0b35a61b5ad3351ad4262a180615f4902ece71", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x3f827eebbf7952580e8a0bc8027a70f2b4d36e85fce68cec81a038db51082e27" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xec936ff6f19523f22bf047d24e0b35a61b5ad3351ad4262a180615f4902ece71", diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_zero_excess_blob_gas_in_header.json b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_zero_excess_blob_gas_in_header.json index 8ece03b3bbd..35c64d7d97d 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_zero_excess_blob_gas_in_header.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_zero_excess_blob_gas_in_header.json @@ -1,7 +1,7 @@ { "000-fork=Cancun-parent_blobs=0-new_blobs=0-header_excess_blob_gas=0-correct:0x40000-header:0x0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -34,7 +34,51 @@ { "rlp": "0xf902aaf9023ca07d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0e06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041a0167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f867b86502f8620180800782afc89400000000000000000000000000000000000001000180c080a0fb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663a059001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x7d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0xe06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041", + "receiptTrie": "0x167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x8213e2ac114e758a9273a79e81c2a474d4f0e511e479ac449fffbcfc1f92409c" + }, + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "v": "0x00", + "r": "0xfb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663", + "s": "0x59001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x7d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489", @@ -94,7 +138,7 @@ }, "001-fork=Cancun-parent_blobs=0-new_blobs=1-header_excess_blob_gas=0-correct:0x40000-header:0x0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -127,7 +171,55 @@ { "rlp": "0xf902d0f9023fa05ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x03e22ea02241c69c4c2be271e559c96df35ed94bd5bb1dba70600f7708e9d5ad" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2", @@ -187,7 +279,7 @@ }, "002-fork=Cancun-parent_blobs=1-new_blobs=0-header_excess_blob_gas=0-correct:0x60000-header:0x0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -271,7 +363,51 @@ { "rlp": "0xf902aaf9023ca0663441f195772c42e92e1823655cdcf68eb5568172108bf1612f1da3682590e5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa0e06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041a0167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f867b86502f8620180800782afc89400000000000000000000000000000000000001000180c080a0fb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663a059001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x663441f195772c42e92e1823655cdcf68eb5568172108bf1612f1da3682590e5", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff", + "transactionsTrie": "0xe06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041", + "receiptTrie": "0x167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x8a022a7364c783897e1a2b9662fac648cba640b8750a5043d105849700ec356c" + }, + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "v": "0x00", + "r": "0xfb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663", + "s": "0x59001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x663441f195772c42e92e1823655cdcf68eb5568172108bf1612f1da3682590e5", @@ -339,7 +475,7 @@ }, "003-fork=Cancun-parent_blobs=1-new_blobs=1-header_excess_blob_gas=0-correct:0x60000-header:0x0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -423,7 +559,55 @@ { "rlp": "0xf902d0f9023fa0c1628b13a83bf129ac4c1613148bb8acf4feb86959e0dcfd51c24e1dbff8db69a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xc1628b13a83bf129ac4c1613148bb8acf4feb86959e0dcfd51c24e1dbff8db69", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x339669f618eab0fed6b09bf2a4db6e0bcb9e0150914f213088c3f803f6d54223" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xc1628b13a83bf129ac4c1613148bb8acf4feb86959e0dcfd51c24e1dbff8db69", @@ -491,7 +675,7 @@ }, "004-fork=Cancun-parent_blobs=2-new_blobs=0-header_excess_blob_gas=0-correct:0x80000-header:0x0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -576,7 +760,51 @@ { "rlp": "0xf902aaf9023ca07a97f3322acabd8da87152ede1d82d47fa4108cfc9a50df3d77d5ac773599662a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a0e06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041a0167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f867b86502f8620180800782afc89400000000000000000000000000000000000001000180c080a0fb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663a059001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x7a97f3322acabd8da87152ede1d82d47fa4108cfc9a50df3d77d5ac773599662", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4", + "transactionsTrie": "0xe06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041", + "receiptTrie": "0x167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xca8acafe08197348b76db1b4eb4915685be1365d1ccb5a58679823d0d1064d8e" + }, + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "v": "0x00", + "r": "0xfb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663", + "s": "0x59001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x7a97f3322acabd8da87152ede1d82d47fa4108cfc9a50df3d77d5ac773599662", @@ -644,7 +872,7 @@ }, "005-fork=Cancun-parent_blobs=2-new_blobs=1-header_excess_blob_gas=0-correct:0x80000-header:0x0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -729,7 +957,55 @@ { "rlp": "0xf902d0f9023fa0b3d1505f6e0dfecc33190a216655309008fea8d105cf90e8a1822fde05ae4e93a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xb3d1505f6e0dfecc33190a216655309008fea8d105cf90e8a1822fde05ae4e93", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x59d9597c7fcea6563904225aa6cc46c44fe4c12f7f254da2f671802443332417" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xb3d1505f6e0dfecc33190a216655309008fea8d105cf90e8a1822fde05ae4e93", @@ -797,7 +1073,7 @@ }, "006-fork=Cancun-parent_blobs=3-new_blobs=0-header_excess_blob_gas=0-correct:0xa0000-header:0x0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -883,7 +1159,51 @@ { "rlp": "0xf902aaf9023ca022d0eafa826e868b930a48d4f1eb2e5b6d542ee9cf063d65a86cff0e92e1273ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586ca0e06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041a0167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f867b86502f8620180800782afc89400000000000000000000000000000000000001000180c080a0fb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663a059001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x22d0eafa826e868b930a48d4f1eb2e5b6d542ee9cf063d65a86cff0e92e1273e", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586c", + "transactionsTrie": "0xe06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041", + "receiptTrie": "0x167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x8ac1d9edc3a003f16d40d08b0a178cd4984df3b18a221d219c0beff724eddf74" + }, + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "v": "0x00", + "r": "0xfb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663", + "s": "0x59001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x22d0eafa826e868b930a48d4f1eb2e5b6d542ee9cf063d65a86cff0e92e1273e", @@ -951,7 +1271,7 @@ }, "007-fork=Cancun-parent_blobs=3-new_blobs=1-header_excess_blob_gas=0-correct:0xa0000-header:0x0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1037,7 +1357,55 @@ { "rlp": "0xf902d0f9023fa0a9b390ae7619916e5b1996613757356de25206626f06665d90888f5f9ca685e3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xa9b390ae7619916e5b1996613757356de25206626f06665d90888f5f9ca685e3", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x423645d83ab41441c51302853949dbb8d715d9fa7dfb18e68c2ed520a6d33d57" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xa9b390ae7619916e5b1996613757356de25206626f06665d90888f5f9ca685e3", @@ -1105,7 +1473,7 @@ }, "008-fork=Cancun-parent_blobs=4-new_blobs=0-header_excess_blob_gas=0-correct:0xc0000-header:0x0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1192,7 +1560,51 @@ { "rlp": "0xf902aaf9023ca0cfe9dc75fdf92e7c09c591614c1d84c59ade46306385e5dc9d625996f1cb8a6aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92a0e06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041a0167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f867b86502f8620180800782afc89400000000000000000000000000000000000001000180c080a0fb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663a059001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xcfe9dc75fdf92e7c09c591614c1d84c59ade46306385e5dc9d625996f1cb8a6a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92", + "transactionsTrie": "0xe06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041", + "receiptTrie": "0x167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x7ce855d3c80a3df68f543800bde87a5bba1e04d7ae7e36132efb869633c45928" + }, + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "v": "0x00", + "r": "0xfb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663", + "s": "0x59001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xcfe9dc75fdf92e7c09c591614c1d84c59ade46306385e5dc9d625996f1cb8a6a", @@ -1260,7 +1672,7 @@ }, "009-fork=Cancun-parent_blobs=4-new_blobs=1-header_excess_blob_gas=0-correct:0xc0000-header:0x0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1347,7 +1759,55 @@ { "rlp": "0xf902d0f9023fa01dcf918975d43b00527a2b1256e2f4361558d273c45e8761b33429ea9f2c02dea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x1dcf918975d43b00527a2b1256e2f4361558d273c45e8761b33429ea9f2c02de", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x6516b31d5cae2af036db6940221b03f86d33ed67e5212dbc3717325244f9a736" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x1dcf918975d43b00527a2b1256e2f4361558d273c45e8761b33429ea9f2c02de", @@ -1415,7 +1875,7 @@ }, "010-fork=Cancun-parent_blobs=5-new_blobs=0-header_excess_blob_gas=0-correct:0xe0000-header:0x0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1503,7 +1963,51 @@ { "rlp": "0xf902aaf9023ca02562be0dfd3ba3e4f57ac291078c1919af284c560d8487b6eb21f2250d1e6969a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0a0e06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041a0167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f867b86502f8620180800782afc89400000000000000000000000000000000000001000180c080a0fb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663a059001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x2562be0dfd3ba3e4f57ac291078c1919af284c560d8487b6eb21f2250d1e6969", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xbdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0", + "transactionsTrie": "0xe06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041", + "receiptTrie": "0x167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xba1876e43c6c6b1919ebc97e1220c35522d5dff2abd16945aa9e42e896972dfe" + }, + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "v": "0x00", + "r": "0xfb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663", + "s": "0x59001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x2562be0dfd3ba3e4f57ac291078c1919af284c560d8487b6eb21f2250d1e6969", @@ -1571,7 +2075,7 @@ }, "011-fork=Cancun-parent_blobs=5-new_blobs=1-header_excess_blob_gas=0-correct:0xe0000-header:0x0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1659,7 +2163,55 @@ { "rlp": "0xf902d0f9023fa04f51ccb206e78b64fb7f6152cd4009981a775e4ad7d5cd4d15a3ff86bf43525ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x4f51ccb206e78b64fb7f6152cd4009981a775e4ad7d5cd4d15a3ff86bf43525e", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xbdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x11d1629f71659470dc8a9190a057b7980523062a985ede6c601f3fe6440d94c4" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x4f51ccb206e78b64fb7f6152cd4009981a775e4ad7d5cd4d15a3ff86bf43525e", @@ -1727,7 +2279,7 @@ }, "012-fork=Cancun-parent_blobs=6-new_blobs=0-header_excess_blob_gas=0-correct:0x100000-header:0x0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1816,7 +2368,51 @@ { "rlp": "0xf902aaf9023ca015b40c5e5cc15f42e8b3535867a8fefd0cb835878224211521d9bd5aa2534df5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290a0e06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041a0167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f867b86502f8620180800782afc89400000000000000000000000000000000000001000180c080a0fb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663a059001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x15b40c5e5cc15f42e8b3535867a8fefd0cb835878224211521d9bd5aa2534df5", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290", + "transactionsTrie": "0xe06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041", + "receiptTrie": "0x167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xc4589f8b3eda4f4e1268176cb7878788e29413049c8d76fbb6e66d17403c7591" + }, + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "v": "0x00", + "r": "0xfb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663", + "s": "0x59001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x15b40c5e5cc15f42e8b3535867a8fefd0cb835878224211521d9bd5aa2534df5", @@ -1884,7 +2480,7 @@ }, "013-fork=Cancun-parent_blobs=6-new_blobs=1-header_excess_blob_gas=0-correct:0x100000-header:0x0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1973,7 +2569,55 @@ { "rlp": "0xf902d0f9023fa01c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "expectException": "invalid excess blob gas", - "blocknumber": "2" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x1c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2e", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x8fef8aa28f4472591334a02f003f07947d42ceb41cfbd625fd2f30fbc3d1219b" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x1c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2e", diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas_fork_transition/fork_transition_excess_blob_gas.json b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas_fork_transition/fork_transition_excess_blob_gas.json index 76f66098889..72b0102e8a9 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas_fork_transition/fork_transition_excess_blob_gas.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas_fork_transition/fork_transition_excess_blob_gas.json @@ -1,7 +1,7 @@ { "000-fork=ShanghaiToCancunAtTime15k-max_blobs-correct_initial_blob_gas_calc": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -936,7 +936,7 @@ }, "001-fork=ShanghaiToCancunAtTime15k-no_blobs-correct_initial_blob_gas_calc": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1895,7 +1895,7 @@ }, "002-fork=ShanghaiToCancunAtTime15k-target_blobs-correct_initial_blob_gas_calc": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas_fork_transition/invalid_post_fork_block_without_blob_fields.json b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas_fork_transition/invalid_post_fork_block_without_blob_fields.json index f099b5722c9..3d953e1c152 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas_fork_transition/invalid_post_fork_block_without_blob_fields.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas_fork_transition/invalid_post_fork_block_without_blob_fields.json @@ -1,7 +1,7 @@ { "000-fork=ShanghaiToCancunAtTime15k-excess_blob_gas_missing=True-blob_gas_used_missing=False-blob_fields_missing_post_fork": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -436,7 +436,33 @@ { "rlp": "0xf90241f9023ba064177ba1942c915cc9c4d95a69b27befb29a3e0c2a56882fba4fb8c5bf367feaa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa028415a6a7e08c2fb01beaa4d4e8397ed3c51f8c7400d3619803652afedf658c1a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801088016345785d8a000080823a9880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "expectException": "blob fields missing post fork", - "blocknumber": "16" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x64177ba1942c915cc9c4d95a69b27befb29a3e0c2a56882fba4fb8c5bf367fea", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x28415a6a7e08c2fb01beaa4d4e8397ed3c51f8c7400d3619803652afedf658c1", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x10", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x3a98", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x5155c84b69a8af6ee6f06d7414f1e434d01dbd8a5eab1ac429b246525e319e16" + }, + "transactions": [], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x64177ba1942c915cc9c4d95a69b27befb29a3e0c2a56882fba4fb8c5bf367fea", @@ -472,7 +498,7 @@ }, "001-fork=ShanghaiToCancunAtTime15k-excess_blob_gas_missing=False-blob_gas_used_missing=True-blob_fields_missing_post_fork": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -907,7 +933,33 @@ { "rlp": "0xf90241f9023ba064177ba1942c915cc9c4d95a69b27befb29a3e0c2a56882fba4fb8c5bf367feaa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa028415a6a7e08c2fb01beaa4d4e8397ed3c51f8c7400d3619803652afedf658c1a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801088016345785d8a000080823a9880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "expectException": "blob fields missing post fork", - "blocknumber": "16" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x64177ba1942c915cc9c4d95a69b27befb29a3e0c2a56882fba4fb8c5bf367fea", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x28415a6a7e08c2fb01beaa4d4e8397ed3c51f8c7400d3619803652afedf658c1", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x10", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x3a98", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x5155c84b69a8af6ee6f06d7414f1e434d01dbd8a5eab1ac429b246525e319e16" + }, + "transactions": [], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x64177ba1942c915cc9c4d95a69b27befb29a3e0c2a56882fba4fb8c5bf367fea", @@ -943,7 +995,7 @@ }, "002-fork=ShanghaiToCancunAtTime15k-excess_blob_gas_missing=True-blob_gas_used_missing=True-blob_fields_missing_post_fork": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1378,7 +1430,32 @@ { "rlp": "0xf90240f9023aa064177ba1942c915cc9c4d95a69b27befb29a3e0c2a56882fba4fb8c5bf367feaa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa028415a6a7e08c2fb01beaa4d4e8397ed3c51f8c7400d3619803652afedf658c1a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801088016345785d8a000080823a9880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "expectException": "blob fields missing post fork", - "blocknumber": "16" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x64177ba1942c915cc9c4d95a69b27befb29a3e0c2a56882fba4fb8c5bf367fea", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x28415a6a7e08c2fb01beaa4d4e8397ed3c51f8c7400d3619803652afedf658c1", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x10", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x3a98", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xacb59ea4cb2ed97ba5f95d4d2bf5401c0b63b69bdbf0215a5bdcf43e9f9eefea" + }, + "transactions": [], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x64177ba1942c915cc9c4d95a69b27befb29a3e0c2a56882fba4fb8c5bf367fea", diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas_fork_transition/invalid_pre_fork_block_with_blob_fields.json b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas_fork_transition/invalid_pre_fork_block_with_blob_fields.json index 02e13c6536f..8fddbd8e7aa 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas_fork_transition/invalid_pre_fork_block_with_blob_fields.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas_fork_transition/invalid_pre_fork_block_with_blob_fields.json @@ -1,7 +1,7 @@ { "000-fork=ShanghaiToCancunAtTime15k-excess_blob_gas_present=True-blob_gas_used_present=False-invalid_pre_fork_blob_fields": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -409,7 +409,32 @@ { "rlp": "0xf90220f9021aa07ae2e4b82775c956911581694c6ba462b6a04380af8a34cb56708ab2cb650c8ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800f88016345785d8a000080823a9780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180c0c0c0", "expectException": "invalid pre fork blob fields", - "blocknumber": "15" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x7ae2e4b82775c956911581694c6ba462b6a04380af8a34cb56708ab2cb650c8e", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x0f", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x3a97", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "excessBlobGas": "0x00", + "hash": "0x1c1e9818fb8c040850c98909c62ec5dae58dedcefcf7e7c5c2055dd2868168f1" + }, + "transactions": [], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x7ae2e4b82775c956911581694c6ba462b6a04380af8a34cb56708ab2cb650c8e", @@ -445,7 +470,7 @@ }, "001-fork=ShanghaiToCancunAtTime15k-excess_blob_gas_present=False-blob_gas_used_present=True-invalid_pre_fork_blob_fields": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -853,7 +878,32 @@ { "rlp": "0xf90220f9021aa07ae2e4b82775c956911581694c6ba462b6a04380af8a34cb56708ab2cb650c8ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800f88016345785d8a000080823a9780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180c0c0c0", "expectException": "invalid pre fork blob fields", - "blocknumber": "15" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x7ae2e4b82775c956911581694c6ba462b6a04380af8a34cb56708ab2cb650c8e", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x0f", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x3a97", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "hash": "0x1c1e9818fb8c040850c98909c62ec5dae58dedcefcf7e7c5c2055dd2868168f1" + }, + "transactions": [], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x7ae2e4b82775c956911581694c6ba462b6a04380af8a34cb56708ab2cb650c8e", @@ -889,7 +939,7 @@ }, "002-fork=ShanghaiToCancunAtTime15k-excess_blob_gas_present=True-blob_gas_used_present=True-invalid_pre_fork_blob_fields": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1297,7 +1347,33 @@ { "rlp": "0xf90221f9021ba07ae2e4b82775c956911581694c6ba462b6a04380af8a34cb56708ab2cb650c8ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800f88016345785d8a000080823a9780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080c0c0c0", "expectException": "invalid pre fork blob fields", - "blocknumber": "15" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x7ae2e4b82775c956911581694c6ba462b6a04380af8a34cb56708ab2cb650c8e", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x0f", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x3a97", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "hash": "0xeecbcca0613b3c5c92cf0a66a029c904038ef385f26f23c99a550e8a91fe73aa" + }, + "transactions": [], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x7ae2e4b82775c956911581694c6ba462b6a04380af8a34cb56708ab2cb650c8e", diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile/invalid_precompile_calls.json b/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile/invalid_precompile_calls.json index e4327e1d988..361f33f2eaf 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile/invalid_precompile_calls.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile/invalid_precompile_calls.json @@ -1,7 +1,7 @@ { "000-fork=Cancun-success=False-out_of_bounds_z": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -131,7 +131,7 @@ }, "001-fork=Cancun-success=False-out_of_bounds_y": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -259,7 +259,7 @@ }, "002-fork=Cancun-success=False-correct_proof_1_input_too_short": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -389,7 +389,7 @@ }, "003-fork=Cancun-success=False-correct_proof_1_input_too_short_2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -519,7 +519,7 @@ }, "004-fork=Cancun-success=False-correct_proof_1_input_too_long": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -649,7 +649,7 @@ }, "005-fork=Cancun-success=False-correct_proof_1_input_extra_long": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -779,7 +779,7 @@ }, "006-fork=Cancun-success=False-null_inputs": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -904,7 +904,7 @@ }, "007-fork=Cancun-success=False-zeros_inputs": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1029,7 +1029,7 @@ }, "008-fork=Cancun-success=False-zeros_inputs_correct_versioned_hash": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1157,7 +1157,7 @@ }, "009-fork=Cancun-success=False-correct_proof_1_incorrect_versioned_hash_version_0x00": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1287,7 +1287,7 @@ }, "010-fork=Cancun-success=False-correct_proof_1_incorrect_versioned_hash_version_0x02": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1417,7 +1417,7 @@ }, "011-fork=Cancun-success=False-correct_proof_1_incorrect_versioned_hash_version_0xff": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile/point_evaluation_precompile_before_fork.json b/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile/point_evaluation_precompile_before_fork.json index e7ccfcc0aa5..ab973ba7356 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile/point_evaluation_precompile_before_fork.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile/point_evaluation_precompile_before_fork.json @@ -1,7 +1,7 @@ { "000-fork=ShanghaiToCancunAtTime15k-correct_proof-point_evaluation_precompile_before_fork": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile/point_evaluation_precompile_calls.json b/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile/point_evaluation_precompile_calls.json index a803ae414af..27cc151ca05 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile/point_evaluation_precompile_calls.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile/point_evaluation_precompile_calls.json @@ -1,7 +1,7 @@ { "000-fork=Cancun--call_type=CALL-correct": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -133,7 +133,7 @@ }, "001-fork=Cancun--call_type=CALL-incorrect": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -263,7 +263,7 @@ }, "002-fork=Cancun--call_type=CALL-insufficient_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -393,7 +393,7 @@ }, "003-fork=Cancun--call_type=DELEGATECALL-correct": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -525,7 +525,7 @@ }, "004-fork=Cancun--call_type=DELEGATECALL-incorrect": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -655,7 +655,7 @@ }, "005-fork=Cancun--call_type=DELEGATECALL-insufficient_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -785,7 +785,7 @@ }, "006-fork=Cancun--call_type=CALLCODE-correct": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -917,7 +917,7 @@ }, "007-fork=Cancun--call_type=CALLCODE-incorrect": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1047,7 +1047,7 @@ }, "008-fork=Cancun--call_type=CALLCODE-insufficient_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1177,7 +1177,7 @@ }, "009-fork=Cancun--call_type=STATICCALL-correct": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1309,7 +1309,7 @@ }, "010-fork=Cancun--call_type=STATICCALL-incorrect": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1439,7 +1439,7 @@ }, "011-fork=Cancun--call_type=STATICCALL-insufficient_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile/point_evaluation_precompile_external_vectors.json b/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile/point_evaluation_precompile_external_vectors.json index de7fa804608..bedc322bae9 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile/point_evaluation_precompile_external_vectors.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile/point_evaluation_precompile_external_vectors.json @@ -1,7 +1,7 @@ { "000-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_02e696ada7d4631d": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -131,9 +131,9 @@ }, "sealEngine": "NoProof" }, - "001-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_08f9e2f1cb3d39db": { + "001-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_05c1f3685f3393f0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -164,19 +164,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa004023d26811e25cd34b8ce4d5aab0a6a3fa16558984b0b2c29a1d371f83a1249a0487a2b42837cfb42e30dc2a3601d1ee2d4b4f10efda11a4623ea510d1a511a8da0f5edc77dca0be21234ab0069b8ad13ce6c3c972e66e0ddd0e43da6c5d9950043b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830325a00c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a059e387255cf10f1ecfd2846f252f931724b1be74c7b62cc27e2b3693f0e0b9bda046be1d5b11bf7aa48259044c60810623555b4160bf9885967ff64e8147c51340c0c0", + "rlp": "0xf9036ff9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0daa2e7172725bfa180044d9a50f715abdd0b4e2b908bea2e9a1b59446d74db5aa064694503549631721abbd0ccbc59bbb11f6987a03104eef1e12a3d3d1aca8579a0cffc4636a42d9c6309bc3a1501b115d31f9b57efcb36cdab27c5e3ef9c756d09b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303248c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012ab9012702f9012301808007830f424094000000000000000000000000000000000000010080b8c001cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e38637564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363060000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a056cc0f64cca987cba1d1c7f6f39aadaafefae85a8dadadc776cf2881c6194c219f8727fa857ab3248103a8636248eaedaed219c313bf97e2673a9bab17226144c0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x04023d26811e25cd34b8ce4d5aab0a6a3fa16558984b0b2c29a1d371f83a1249", - "transactionsTrie": "0x487a2b42837cfb42e30dc2a3601d1ee2d4b4f10efda11a4623ea510d1a511a8d", - "receiptTrie": "0xf5edc77dca0be21234ab0069b8ad13ce6c3c972e66e0ddd0e43da6c5d9950043", + "stateRoot": "0xdaa2e7172725bfa180044d9a50f715abdd0b4e2b908bea2e9a1b59446d74db5a", + "transactionsTrie": "0x64694503549631721abbd0ccbc59bbb11f6987a03104eef1e12a3d3d1aca8579", + "receiptTrie": "0xcffc4636a42d9c6309bc3a1501b115d31f9b57efcb36cdab27c5e3ef9c756d09", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x0325a0", + "gasUsed": "0x03248c", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -186,7 +186,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x87aa02b29ff1a99a0ce591a62729b351961c0c3bb52c7288c083cfe432aecc4e" + "hash": "0x9e09b698405a8b1d07a8b74ee53b5d0a3174b6c7a933f1c0ce594b5af4d2172a" }, "blocknumber": "1", "transactions": [ @@ -199,11 +199,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "data": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e38637564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363060000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "accessList": [], - "v": "0x01", - "r": "0x59e387255cf10f1ecfd2846f252f931724b1be74c7b62cc27e2b3693f0e0b9bd", - "s": "0x46be1d5b11bf7aa48259044c60810623555b4160bf9885967ff64e8147c51340", + "v": "0x00", + "r": "0x56cc0f64cca987cba1d1c7f6f39aadaafefae85a8dadadc776cf2881c6194c21", + "s": "0x8727fa857ab3248103a8636248eaedaed219c313bf97e2673a9bab17226144", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -211,7 +211,7 @@ "withdrawals": [] } ], - "lastblockhash": "0x87aa02b29ff1a99a0ce591a62729b351961c0c3bb52c7288c083cfe432aecc4e", + "lastblockhash": "0x9e09b698405a8b1d07a8b74ee53b5d0a3174b6c7a933f1c0ce594b5af4d2172a", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -256,16 +256,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffe9f8a0", + "balance": "0xffffffffffffea002c", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "002-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_0cf79b17cb5f4ea2": { + "002-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_08f9e2f1cb3d39db": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -296,19 +296,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bff95dd737627225c19a4001d9e0ac170f07cfcf671baa06eafbdc170412e94aa09de76ebe2fbdd1eb1a72a2e02745283ea9c1a5589acfbca28e25b9705616f360a076ad64f6308db609864c81c154e4e31f69f77b180f6e6abcc0126c8062982fb5b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830322400c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a05d3bf2f997666f4680b7e444ca7e44c0b2de13ee5223f26a7a7bde6f088aec02a069b227b9cd40fa2c0fe4fb4616f1048b448d849427efdb783389c6e6e6caaf22c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa004023d26811e25cd34b8ce4d5aab0a6a3fa16558984b0b2c29a1d371f83a1249a0487a2b42837cfb42e30dc2a3601d1ee2d4b4f10efda11a4623ea510d1a511a8da0f5edc77dca0be21234ab0069b8ad13ce6c3c972e66e0ddd0e43da6c5d9950043b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830325a00c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a059e387255cf10f1ecfd2846f252f931724b1be74c7b62cc27e2b3693f0e0b9bda046be1d5b11bf7aa48259044c60810623555b4160bf9885967ff64e8147c51340c0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xbff95dd737627225c19a4001d9e0ac170f07cfcf671baa06eafbdc170412e94a", - "transactionsTrie": "0x9de76ebe2fbdd1eb1a72a2e02745283ea9c1a5589acfbca28e25b9705616f360", - "receiptTrie": "0x76ad64f6308db609864c81c154e4e31f69f77b180f6e6abcc0126c8062982fb5", + "stateRoot": "0x04023d26811e25cd34b8ce4d5aab0a6a3fa16558984b0b2c29a1d371f83a1249", + "transactionsTrie": "0x487a2b42837cfb42e30dc2a3601d1ee2d4b4f10efda11a4623ea510d1a511a8d", + "receiptTrie": "0xf5edc77dca0be21234ab0069b8ad13ce6c3c972e66e0ddd0e43da6c5d9950043", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x032240", + "gasUsed": "0x0325a0", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -318,7 +318,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xdd7a27a92391f614fe183adf097706a5415284d90a8611aa090f116bfac1b617" + "hash": "0x87aa02b29ff1a99a0ce591a62729b351961c0c3bb52c7288c083cfe432aecc4e" }, "blocknumber": "1", "transactions": [ @@ -331,11 +331,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "accessList": [], "v": "0x01", - "r": "0x5d3bf2f997666f4680b7e444ca7e44c0b2de13ee5223f26a7a7bde6f088aec02", - "s": "0x69b227b9cd40fa2c0fe4fb4616f1048b448d849427efdb783389c6e6e6caaf22", + "r": "0x59e387255cf10f1ecfd2846f252f931724b1be74c7b62cc27e2b3693f0e0b9bd", + "s": "0x46be1d5b11bf7aa48259044c60810623555b4160bf9885967ff64e8147c51340", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -343,7 +343,7 @@ "withdrawals": [] } ], - "lastblockhash": "0xdd7a27a92391f614fe183adf097706a5415284d90a8611aa090f116bfac1b617", + "lastblockhash": "0x87aa02b29ff1a99a0ce591a62729b351961c0c3bb52c7288c083cfe432aecc4e", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -388,16 +388,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffea1040", + "balance": "0xffffffffffffe9f8a0", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "003-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_1ce8e4f69d5df899": { + "003-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_0cf79b17cb5f4ea2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -428,19 +428,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a99871e54f31dcf49f28c94a654df2fe9fd1c662ace3959bba53d194d890d527a09d06f6b26cd14b0d3f21382ffa54d56ae7f91deca6ebc10b2fa2eab3dad5fc1ea0107b00df623c9a80790e9c7cc0ee8f3527004d21d32f368f34b00937a6b1343db9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326780c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc573eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000000000000000000000000000000000000000000000000000000000000000000000b09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440efa729910bad9058b4e277f3ddba7396df505a0191c38e5ad08af1d0d30792c887e99bf754b7932b83e1cef4e1ec678339c001a0165f8a7b48f74493495d217f6a2847408ac4d4ea6bd618c644e1a8d8a9fc79eda0487d842fabe0ba38ef64e623c7c2254e16b8905ecf116e90aa29c1acd6854409c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bff95dd737627225c19a4001d9e0ac170f07cfcf671baa06eafbdc170412e94aa09de76ebe2fbdd1eb1a72a2e02745283ea9c1a5589acfbca28e25b9705616f360a076ad64f6308db609864c81c154e4e31f69f77b180f6e6abcc0126c8062982fb5b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830322400c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a05d3bf2f997666f4680b7e444ca7e44c0b2de13ee5223f26a7a7bde6f088aec02a069b227b9cd40fa2c0fe4fb4616f1048b448d849427efdb783389c6e6e6caaf22c0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xa99871e54f31dcf49f28c94a654df2fe9fd1c662ace3959bba53d194d890d527", - "transactionsTrie": "0x9d06f6b26cd14b0d3f21382ffa54d56ae7f91deca6ebc10b2fa2eab3dad5fc1e", - "receiptTrie": "0x107b00df623c9a80790e9c7cc0ee8f3527004d21d32f368f34b00937a6b1343d", + "stateRoot": "0xbff95dd737627225c19a4001d9e0ac170f07cfcf671baa06eafbdc170412e94a", + "transactionsTrie": "0x9de76ebe2fbdd1eb1a72a2e02745283ea9c1a5589acfbca28e25b9705616f360", + "receiptTrie": "0x76ad64f6308db609864c81c154e4e31f69f77b180f6e6abcc0126c8062982fb5", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x032678", + "gasUsed": "0x032240", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -450,7 +450,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x7408de1fdaac5a736ef5d1b4617695930ade4e68c57632314ef45cc03dd33cab" + "hash": "0xdd7a27a92391f614fe183adf097706a5415284d90a8611aa090f116bfac1b617" }, "blocknumber": "1", "transactions": [ @@ -463,11 +463,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc573eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000000000000000000000000000000000000000000000000000000000000000000000b09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440efa729910bad9058b4e277f3ddba7396df505a0191c38e5ad08af1d0d30792c887e99bf754b7932b83e1cef4e1ec678339", + "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "accessList": [], "v": "0x01", - "r": "0x165f8a7b48f74493495d217f6a2847408ac4d4ea6bd618c644e1a8d8a9fc79ed", - "s": "0x487d842fabe0ba38ef64e623c7c2254e16b8905ecf116e90aa29c1acd6854409", + "r": "0x5d3bf2f997666f4680b7e444ca7e44c0b2de13ee5223f26a7a7bde6f088aec02", + "s": "0x69b227b9cd40fa2c0fe4fb4616f1048b448d849427efdb783389c6e6e6caaf22", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -475,7 +475,7 @@ "withdrawals": [] } ], - "lastblockhash": "0x7408de1fdaac5a736ef5d1b4617695930ade4e68c57632314ef45cc03dd33cab", + "lastblockhash": "0xdd7a27a92391f614fe183adf097706a5415284d90a8611aa090f116bfac1b617", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -520,16 +520,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffe9f2b8", + "balance": "0xffffffffffffea1040", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "004-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_26b753dec0560daa": { + "004-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_177b58dc7a46b08f": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -560,19 +560,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05ce79e06e93755883c681653ed1373893d31a0800384fd305f47d7a039076749a013fd9224a0424d2558396842595cb72e0789f1b6cbe952ea4ea5f8b49a689d19a099cc7e90b41f23e91cea893ec59e04a28e472185d64013784cfed89e8dde1a64b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326900c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5000000000000000000000000000000000000000000000000000000000000000073e66878b46ae3705eb6a46a89213de7d3686828bfce5c19400fffff00100001b09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440ef8931692634033cbbfe2db48c027dbb93f123754205bb7c7a56797966f83272b13b4be34f80c15bf8d4ed0b740ffb3c64c080a0365e0602b422eea53fbad362bfc3baca8b4575c9881992df6864c47bafadb985a009c6f75c387d7a57a4e6ddcfb1d509eeacb54d427b5b5dc3da129469b00f4fb5c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09ee9c8e9998e316ff7563b4fb05e35b3cc8f20337ca314d83c098149fd6c0d9da0b835914c32846ce4b9f953b0ba04cf33028ecc13380fd2c259575cada7be2d30a04bf1348d0fdae7278cb03c8bb2e38fdebee3a8d9312f9fe9639e449b2353b9b4b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830324800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e386375eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0041603d4d4eee85f8717ccf36cc9332488c80a98288dab307cefa8cf4779d9d0a043eff97f53dd7225d6f09e384fc0841ae1d4270b493ca3f28a75a1ce188d2505c0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5ce79e06e93755883c681653ed1373893d31a0800384fd305f47d7a039076749", - "transactionsTrie": "0x13fd9224a0424d2558396842595cb72e0789f1b6cbe952ea4ea5f8b49a689d19", - "receiptTrie": "0x99cc7e90b41f23e91cea893ec59e04a28e472185d64013784cfed89e8dde1a64", + "stateRoot": "0x9ee9c8e9998e316ff7563b4fb05e35b3cc8f20337ca314d83c098149fd6c0d9d", + "transactionsTrie": "0xb835914c32846ce4b9f953b0ba04cf33028ecc13380fd2c259575cada7be2d30", + "receiptTrie": "0x4bf1348d0fdae7278cb03c8bb2e38fdebee3a8d9312f9fe9639e449b2353b9b4", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x032690", + "gasUsed": "0x032480", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -582,7 +582,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x4e08d977d444b7aa15b2d3fbd9a6d7f6d3b05c90591a67e81f9b3de82f9664f0" + "hash": "0xf2f72e3687bae12fd957a7467c84db42d33b6fb8d75c541c8d0302fa63fbf2c2" }, "blocknumber": "1", "transactions": [ @@ -595,11 +595,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5000000000000000000000000000000000000000000000000000000000000000073e66878b46ae3705eb6a46a89213de7d3686828bfce5c19400fffff00100001b09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440ef8931692634033cbbfe2db48c027dbb93f123754205bb7c7a56797966f83272b13b4be34f80c15bf8d4ed0b740ffb3c64", + "data": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e386375eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "accessList": [], "v": "0x00", - "r": "0x365e0602b422eea53fbad362bfc3baca8b4575c9881992df6864c47bafadb985", - "s": "0x09c6f75c387d7a57a4e6ddcfb1d509eeacb54d427b5b5dc3da129469b00f4fb5", + "r": "0x041603d4d4eee85f8717ccf36cc9332488c80a98288dab307cefa8cf4779d9d0", + "s": "0x43eff97f53dd7225d6f09e384fc0841ae1d4270b493ca3f28a75a1ce188d2505", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -607,7 +607,7 @@ "withdrawals": [] } ], - "lastblockhash": "0x4e08d977d444b7aa15b2d3fbd9a6d7f6d3b05c90591a67e81f9b3de82f9664f0", + "lastblockhash": "0xf2f72e3687bae12fd957a7467c84db42d33b6fb8d75c541c8d0302fa63fbf2c2", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -652,16 +652,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffe9f210", + "balance": "0xffffffffffffea0080", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "005-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_31ebd010e6098750": { + "005-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_1ce8e4f69d5df899": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -692,19 +692,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa016bb0b491c8bb7563e8b45b262e9ffbb52f784d3d3b2b311b4ea770b3327dbd4a02bdfa3637aca485645fba59eab7f0d894ac4223ce26f8deed3ed34b4a03ffe3ba0d9e5a739c73b28835dce3f225dee047f95fe57369e598630dd3a897c7623ece8b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830328040c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000001522a4a7f34e1ea350ae07c29c96c7e79655aa926122e95fe69fcbd932ca49e9978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d1656875654806a57dd03e11678afb060af17cc3dc049e02f2814e13ed1dadc94d1105106ffa834907d1176420f637d51edbcd120274fbc080a0c7cd32b2b7670e9391f010eaba058ec6bd4a69af05a4eb480241c43deb1fdf78a00c073099ee965d382aa8c4ec7806d2a83e9a0f8024c49cda67ea9123f139cc45c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a99871e54f31dcf49f28c94a654df2fe9fd1c662ace3959bba53d194d890d527a043789cfcc04c94354e30ca1cb5082ccd5d15d1c61296d1705538899289d5e61aa0107b00df623c9a80790e9c7cc0ee8f3527004d21d32f368f34b00937a6b1343db9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326780c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000000000000000000000000000000000000000000000000000000000000000000093efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f14655692c51ff81dd71dab71cefecd79e8274b4b7ba36a0f40e2dc086bc4061c7f63249877db23297212991fd63e07b7ebc348c080a083b15b98bed71805ae022f208ab10677f215fdc8f516788b9105ea1002831446a06c604d50ca527c1e81de361282a867fcae3161b9c66672bccfc3decfab89da75c0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x16bb0b491c8bb7563e8b45b262e9ffbb52f784d3d3b2b311b4ea770b3327dbd4", - "transactionsTrie": "0x2bdfa3637aca485645fba59eab7f0d894ac4223ce26f8deed3ed34b4a03ffe3b", - "receiptTrie": "0xd9e5a739c73b28835dce3f225dee047f95fe57369e598630dd3a897c7623ece8", + "stateRoot": "0xa99871e54f31dcf49f28c94a654df2fe9fd1c662ace3959bba53d194d890d527", + "transactionsTrie": "0x43789cfcc04c94354e30ca1cb5082ccd5d15d1c61296d1705538899289d5e61a", + "receiptTrie": "0x107b00df623c9a80790e9c7cc0ee8f3527004d21d32f368f34b00937a6b1343d", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x032804", + "gasUsed": "0x032678", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -714,7 +714,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x287e1550e484ddd54b81569ad482dcbad4411040ad1dc239a4dd5510cca91c8d" + "hash": "0xfdad33e800bbb22101dfd15d3403ca534fef91c88e7a43c5ff5c246efae3215a" }, "blocknumber": "1", "transactions": [ @@ -727,11 +727,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000001522a4a7f34e1ea350ae07c29c96c7e79655aa926122e95fe69fcbd932ca49e9978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d1656875654806a57dd03e11678afb060af17cc3dc049e02f2814e13ed1dadc94d1105106ffa834907d1176420f637d51edbcd120274fb", + "data": "0x01ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000000000000000000000000000000000000000000000000000000000000000000093efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f14655692c51ff81dd71dab71cefecd79e8274b4b7ba36a0f40e2dc086bc4061c7f63249877db23297212991fd63e07b7ebc348", "accessList": [], "v": "0x00", - "r": "0xc7cd32b2b7670e9391f010eaba058ec6bd4a69af05a4eb480241c43deb1fdf78", - "s": "0x0c073099ee965d382aa8c4ec7806d2a83e9a0f8024c49cda67ea9123f139cc45", + "r": "0x83b15b98bed71805ae022f208ab10677f215fdc8f516788b9105ea1002831446", + "s": "0x6c604d50ca527c1e81de361282a867fcae3161b9c66672bccfc3decfab89da75", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -739,7 +739,7 @@ "withdrawals": [] } ], - "lastblockhash": "0x287e1550e484ddd54b81569ad482dcbad4411040ad1dc239a4dd5510cca91c8d", + "lastblockhash": "0xfdad33e800bbb22101dfd15d3403ca534fef91c88e7a43c5ff5c246efae3215a", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -784,16 +784,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffe9e7e4", + "balance": "0xffffffffffffe9f2b8", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "006-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_3208425794224c3f": { + "006-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_26b753dec0560daa": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -824,19 +824,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0738d7b0d4ecfc92c33bc85a7459539409c3afb0ec7282be253b91a459964e71ea0baebc069a2a30182ede5e6ff232fbddf799b0296261aa1db9f0f290d1a78c24fa0c787f58393e74b7115d9f2d353282ab2810a28498a85db4cb8d94d7b5239e15bb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303224c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363060000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0e0e99a9b9d721ea19859ff421ecf4c9f93a0f889e44e37ab1eed8f5337ec64afa04a02154ba84ccb9be41e523726b233a69c4d9d31eb439597178b968b8e6c6d1dc0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05ce79e06e93755883c681653ed1373893d31a0800384fd305f47d7a039076749a0ffa174a7267f0fd675444d1106b4e36f7f04acb483a5f46ed0f52076d6610322a099cc7e90b41f23e91cea893ec59e04a28e472185d64013784cfed89e8dde1a64b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326900c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef000000000000000000000000000000000000000000000000000000000000000073e66878b46ae3705eb6a46a89213de7d3686828bfce5c19400fffff0010000193efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f146556b82ded761997f2c6f1bb3db1e1dada2ef06d936551667c82f659b75f99d2da2068b81340823ee4e829a93c9fbed7810dc080a0a933405fb1acd6fd8a3d63b0c1719808d76cb052267d28b26597c59d7debad12a0444e79244e52dda7b22f522e87729c7e0f2e42dabf4d2bca86a1a3bd5ad35fc4c0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x738d7b0d4ecfc92c33bc85a7459539409c3afb0ec7282be253b91a459964e71e", - "transactionsTrie": "0xbaebc069a2a30182ede5e6ff232fbddf799b0296261aa1db9f0f290d1a78c24f", - "receiptTrie": "0xc787f58393e74b7115d9f2d353282ab2810a28498a85db4cb8d94d7b5239e15b", + "stateRoot": "0x5ce79e06e93755883c681653ed1373893d31a0800384fd305f47d7a039076749", + "transactionsTrie": "0xffa174a7267f0fd675444d1106b4e36f7f04acb483a5f46ed0f52076d6610322", + "receiptTrie": "0x99cc7e90b41f23e91cea893ec59e04a28e472185d64013784cfed89e8dde1a64", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x03224c", + "gasUsed": "0x032690", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -846,7 +846,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x80597272dcd6133f5a9a4ef9a68e8d043f714473bf81b32de54e2fc946c35b9e" + "hash": "0x46905b806271903059045b328481b7bc4971e46bc61f679ee3c6f41eda23b60b" }, "blocknumber": "1", "transactions": [ @@ -859,11 +859,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363060000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "data": "0x01ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef000000000000000000000000000000000000000000000000000000000000000073e66878b46ae3705eb6a46a89213de7d3686828bfce5c19400fffff0010000193efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f146556b82ded761997f2c6f1bb3db1e1dada2ef06d936551667c82f659b75f99d2da2068b81340823ee4e829a93c9fbed7810d", "accessList": [], "v": "0x00", - "r": "0xe0e99a9b9d721ea19859ff421ecf4c9f93a0f889e44e37ab1eed8f5337ec64af", - "s": "0x4a02154ba84ccb9be41e523726b233a69c4d9d31eb439597178b968b8e6c6d1d", + "r": "0xa933405fb1acd6fd8a3d63b0c1719808d76cb052267d28b26597c59d7debad12", + "s": "0x444e79244e52dda7b22f522e87729c7e0f2e42dabf4d2bca86a1a3bd5ad35fc4", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -871,7 +871,7 @@ "withdrawals": [] } ], - "lastblockhash": "0x80597272dcd6133f5a9a4ef9a68e8d043f714473bf81b32de54e2fc946c35b9e", + "lastblockhash": "0x46905b806271903059045b328481b7bc4971e46bc61f679ee3c6f41eda23b60b", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -916,16 +916,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffea0fec", + "balance": "0xffffffffffffe9f210", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "007-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_36817bfd67de97a8": { + "007-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_2b76dc9e3abf42f3": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -956,19 +956,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d2fd000883b07e69b2f0072ea7e1b3ef3d020b94b87b4a005a339aed93f40ff0a0c8b9949fdbd6e8b8147ab57b4df8948a045047b9f8d89ce7bb33cbbb38563ebba0a8c1d3e098b71a1cc8213ea7a30151d9d61a526a0caf2275b56a3c72911ddb85b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830324500c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a00c1fef5ea3a0f8740b54e5fe0408c9ce9d99b42ce538b36fc067d5752ab8ea5ea0618bb0f81f4e7a1b10283b3584c58b374d3d3ed78fcd768b34329656aead6a8dc0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04a133c11db920fba4882b5f6f8b1a5fca6225d9ccb55e8acabd65c098e21e283a04a48dfbccb8fac2366ab037f6e4e1ba275d8678681973fdfd6712bd5e5b730f9a0091757d992eaa78b80aa36f0b2faba95782069d4cbbd8d3fa36ad5c8fee43138b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830323180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e3863700000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a09195fc709fd538fc7555a818e0574406c1cd8cc72fe2e3a50c6b8976e66e3ee0a04b3cbb9786db1ef4866288d895b09850b5167aa3d454a1c7bce0ad99b7065cb7c0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xd2fd000883b07e69b2f0072ea7e1b3ef3d020b94b87b4a005a339aed93f40ff0", - "transactionsTrie": "0xc8b9949fdbd6e8b8147ab57b4df8948a045047b9f8d89ce7bb33cbbb38563ebb", - "receiptTrie": "0xa8c1d3e098b71a1cc8213ea7a30151d9d61a526a0caf2275b56a3c72911ddb85", + "stateRoot": "0x4a133c11db920fba4882b5f6f8b1a5fca6225d9ccb55e8acabd65c098e21e283", + "transactionsTrie": "0x4a48dfbccb8fac2366ab037f6e4e1ba275d8678681973fdfd6712bd5e5b730f9", + "receiptTrie": "0x091757d992eaa78b80aa36f0b2faba95782069d4cbbd8d3fa36ad5c8fee43138", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x032450", + "gasUsed": "0x032318", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -978,7 +978,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x3a96de7d2b35e6eef234601c18193e308a910a9f2546801042d982f3045f1b93" + "hash": "0xd196fb6b1529cad09b38c60dee6b19557597903353ec2d5b6443a1a92153d4b8" }, "blocknumber": "1", "transactions": [ @@ -991,11 +991,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "data": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e3863700000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "accessList": [], - "v": "0x01", - "r": "0x0c1fef5ea3a0f8740b54e5fe0408c9ce9d99b42ce538b36fc067d5752ab8ea5e", - "s": "0x618bb0f81f4e7a1b10283b3584c58b374d3d3ed78fcd768b34329656aead6a8d", + "v": "0x00", + "r": "0x9195fc709fd538fc7555a818e0574406c1cd8cc72fe2e3a50c6b8976e66e3ee0", + "s": "0x4b3cbb9786db1ef4866288d895b09850b5167aa3d454a1c7bce0ad99b7065cb7", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -1003,7 +1003,7 @@ "withdrawals": [] } ], - "lastblockhash": "0x3a96de7d2b35e6eef234601c18193e308a910a9f2546801042d982f3045f1b93", + "lastblockhash": "0xd196fb6b1529cad09b38c60dee6b19557597903353ec2d5b6443a1a92153d4b8", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -1048,16 +1048,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffea01d0", + "balance": "0xffffffffffffea0a58", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "008-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_392169c16a2e5ef6": { + "008-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_31ebd010e6098750": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1088,19 +1088,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0857cc89f8ce1b0e853a8a51026372cbf3a68906794639fc7a08dff3fd607963da0aa16625da437f5999076de40b8d7f4c210e77baf2ce2fd77d6b17349c8c664a4a05742ba1338d1fec304a28a3a37f1763771bae5dacbabdee58251b90e4f76a3dab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830327d40c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000304962b3598a0adf33189fdfd9789feab1096ff40006900400000003fffffffc991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c9a69fc1abb7125e6ae566a95cacd832cca426b8c8ecd7397b19a8f003103bc11a508fc6dceab3a2a16cc83782d295c08fc080a0c7832239d8eecbc9d0a0fd27503cfa7a74a9515ae20e176e176e2fcb78bcb410a0389663dacc45e114ed46a209186fa3d7ecc46657d969bfd86cb95050caf26bf4c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cc0c32ad033d56b450fd0efb7406dd2f8bea933d7bfd691cdf07366e2e7e2a3ea05a95a607cfdb40bc540295c12eba153e7929bffef2afb400051c5b1b29916151a0ddd8e54de43cee140d6658fcf27a111de638a4c94b6be71367a2d82ed31d2b40b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830327e00c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000001522a4a7f34e1ea350ae07c29c96c7e79655aa926122e95fe69fcbd932ca49e98f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7a62ad71d14c5719385c0686f1871430475bf3a00f0aa3f7b8dd99a9abc2160744faf0070725e00b60ad9a026a15b1a8cc001a0631d859dbd7c6db2a8fc72b785f40e5e5fe6b164ac1be86464ea6d3f64ba4e4ba023c5b8b60ca99d38cf1da2f0efd449a6868d217648eea05ee1b85a6b6496ac97c0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x857cc89f8ce1b0e853a8a51026372cbf3a68906794639fc7a08dff3fd607963d", - "transactionsTrie": "0xaa16625da437f5999076de40b8d7f4c210e77baf2ce2fd77d6b17349c8c664a4", - "receiptTrie": "0x5742ba1338d1fec304a28a3a37f1763771bae5dacbabdee58251b90e4f76a3da", + "stateRoot": "0xcc0c32ad033d56b450fd0efb7406dd2f8bea933d7bfd691cdf07366e2e7e2a3e", + "transactionsTrie": "0x5a95a607cfdb40bc540295c12eba153e7929bffef2afb400051c5b1b29916151", + "receiptTrie": "0xddd8e54de43cee140d6658fcf27a111de638a4c94b6be71367a2d82ed31d2b40", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x0327d4", + "gasUsed": "0x0327e0", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -1110,7 +1110,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xb50320eefe8ea72c79cb91eb34eb7f1d178a70a9590182ae163e0399d87c9900" + "hash": "0x89910fbfd8a674c8793add9c88070744cf350faa984ecb5e81005a17f7a3cc07" }, "blocknumber": "1", "transactions": [ @@ -1123,11 +1123,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000304962b3598a0adf33189fdfd9789feab1096ff40006900400000003fffffffc991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c9a69fc1abb7125e6ae566a95cacd832cca426b8c8ecd7397b19a8f003103bc11a508fc6dceab3a2a16cc83782d295c08f", + "data": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000001522a4a7f34e1ea350ae07c29c96c7e79655aa926122e95fe69fcbd932ca49e98f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7a62ad71d14c5719385c0686f1871430475bf3a00f0aa3f7b8dd99a9abc2160744faf0070725e00b60ad9a026a15b1a8c", "accessList": [], - "v": "0x00", - "r": "0xc7832239d8eecbc9d0a0fd27503cfa7a74a9515ae20e176e176e2fcb78bcb410", - "s": "0x389663dacc45e114ed46a209186fa3d7ecc46657d969bfd86cb95050caf26bf4", + "v": "0x01", + "r": "0x631d859dbd7c6db2a8fc72b785f40e5e5fe6b164ac1be86464ea6d3f64ba4e4b", + "s": "0x23c5b8b60ca99d38cf1da2f0efd449a6868d217648eea05ee1b85a6b6496ac97", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -1135,7 +1135,7 @@ "withdrawals": [] } ], - "lastblockhash": "0xb50320eefe8ea72c79cb91eb34eb7f1d178a70a9590182ae163e0399d87c9900", + "lastblockhash": "0x89910fbfd8a674c8793add9c88070744cf350faa984ecb5e81005a17f7a3cc07", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -1180,16 +1180,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffe9e934", + "balance": "0xffffffffffffe9e8e0", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "009-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_3ac8dc31e9aa6a70": { + "009-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_3208425794224c3f": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1220,19 +1220,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa002e49a5b61d560438e797b371a948baa544418d3ea542e48cc62401567b3b321a023c2e283739049651d077fdfc364eb7d4e6f26c0eb394e58898f13fd4823519ca007194d446d05e8c42fac0ab572a81e5572a2dbd57e309129ed37cfff436b5affb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303221c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401473eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0cdcb82e08bcb8bb0eb6de7c1e142a910aa413891c9deeccd0c650737f5407307a06df091d7bdd64b38d24910e969040afa2f65abd8b0ddf8c42ce5e582edfcf4fec0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0738d7b0d4ecfc92c33bc85a7459539409c3afb0ec7282be253b91a459964e71ea0baebc069a2a30182ede5e6ff232fbddf799b0296261aa1db9f0f290d1a78c24fa0c787f58393e74b7115d9f2d353282ab2810a28498a85db4cb8d94d7b5239e15bb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303224c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363060000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0e0e99a9b9d721ea19859ff421ecf4c9f93a0f889e44e37ab1eed8f5337ec64afa04a02154ba84ccb9be41e523726b233a69c4d9d31eb439597178b968b8e6c6d1dc0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x02e49a5b61d560438e797b371a948baa544418d3ea542e48cc62401567b3b321", - "transactionsTrie": "0x23c2e283739049651d077fdfc364eb7d4e6f26c0eb394e58898f13fd4823519c", - "receiptTrie": "0x07194d446d05e8c42fac0ab572a81e5572a2dbd57e309129ed37cfff436b5aff", + "stateRoot": "0x738d7b0d4ecfc92c33bc85a7459539409c3afb0ec7282be253b91a459964e71e", + "transactionsTrie": "0xbaebc069a2a30182ede5e6ff232fbddf799b0296261aa1db9f0f290d1a78c24f", + "receiptTrie": "0xc787f58393e74b7115d9f2d353282ab2810a28498a85db4cb8d94d7b5239e15b", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x03221c", + "gasUsed": "0x03224c", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -1242,7 +1242,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x290bf0da14e9633aab43e0b391ecf236bdfca6ec38af81aec507dba2898c90ac" + "hash": "0x80597272dcd6133f5a9a4ef9a68e8d043f714473bf81b32de54e2fc946c35b9e" }, "blocknumber": "1", "transactions": [ @@ -1255,11 +1255,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401473eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363060000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "accessList": [], "v": "0x00", - "r": "0xcdcb82e08bcb8bb0eb6de7c1e142a910aa413891c9deeccd0c650737f5407307", - "s": "0x6df091d7bdd64b38d24910e969040afa2f65abd8b0ddf8c42ce5e582edfcf4fe", + "r": "0xe0e99a9b9d721ea19859ff421ecf4c9f93a0f889e44e37ab1eed8f5337ec64af", + "s": "0x4a02154ba84ccb9be41e523726b233a69c4d9d31eb439597178b968b8e6c6d1d", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -1267,7 +1267,7 @@ "withdrawals": [] } ], - "lastblockhash": "0x290bf0da14e9633aab43e0b391ecf236bdfca6ec38af81aec507dba2898c90ac", + "lastblockhash": "0x80597272dcd6133f5a9a4ef9a68e8d043f714473bf81b32de54e2fc946c35b9e", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -1312,16 +1312,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffea113c", + "balance": "0xffffffffffffea0fec", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "010-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_3c1e8b38219e3e12": { + "010-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_36817bfd67de97a8": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1352,19 +1352,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09d5a65cc5fbc0b6888f1ca061efcdc9dbd670aa7f06ca8ef23623acb629bd5d1a05e11b330192611cdcfa0feea3801bc7983000d4df1fe49ca6b09fcf6ecf7e6f0a0f2770ea2a80642c8e6b1a1748dfaf23bd1caeb8b204723206ab66564d463d030b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326b40c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff000000000000000000000000000000000000000000000000000000000000000050625ad853cc21ba40594f79591e5d35c445ecf9453014da6524c0cf6367c359991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c9a86f18630d3803118cb0f7a970e04cf58612a91f5cd4f7f9aead0a5e44996484cad44f6a21a37d9188f84e1cfe5d70ffc080a0ff3fbb44abc71d2dee94a0b8877b22f7f4b49c1a83d79184a8c352607d5d2072a04beecb447b8cfd0b5cb89a7d5cdf25790977a328eb410055be4d6bb702d23fa6c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d2fd000883b07e69b2f0072ea7e1b3ef3d020b94b87b4a005a339aed93f40ff0a0c8b9949fdbd6e8b8147ab57b4df8948a045047b9f8d89ce7bb33cbbb38563ebba0a8c1d3e098b71a1cc8213ea7a30151d9d61a526a0caf2275b56a3c72911ddb85b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830324500c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a00c1fef5ea3a0f8740b54e5fe0408c9ce9d99b42ce538b36fc067d5752ab8ea5ea0618bb0f81f4e7a1b10283b3584c58b374d3d3ed78fcd768b34329656aead6a8dc0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9d5a65cc5fbc0b6888f1ca061efcdc9dbd670aa7f06ca8ef23623acb629bd5d1", - "transactionsTrie": "0x5e11b330192611cdcfa0feea3801bc7983000d4df1fe49ca6b09fcf6ecf7e6f0", - "receiptTrie": "0xf2770ea2a80642c8e6b1a1748dfaf23bd1caeb8b204723206ab66564d463d030", + "stateRoot": "0xd2fd000883b07e69b2f0072ea7e1b3ef3d020b94b87b4a005a339aed93f40ff0", + "transactionsTrie": "0xc8b9949fdbd6e8b8147ab57b4df8948a045047b9f8d89ce7bb33cbbb38563ebb", + "receiptTrie": "0xa8c1d3e098b71a1cc8213ea7a30151d9d61a526a0caf2275b56a3c72911ddb85", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x0326b4", + "gasUsed": "0x032450", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -1374,7 +1374,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x0d526e96748501c47f088bff4e5c4ede71ace77b73d370fe7ffad3d132805772" + "hash": "0x3a96de7d2b35e6eef234601c18193e308a910a9f2546801042d982f3045f1b93" }, "blocknumber": "1", "transactions": [ @@ -1387,11 +1387,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff000000000000000000000000000000000000000000000000000000000000000050625ad853cc21ba40594f79591e5d35c445ecf9453014da6524c0cf6367c359991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c9a86f18630d3803118cb0f7a970e04cf58612a91f5cd4f7f9aead0a5e44996484cad44f6a21a37d9188f84e1cfe5d70ff", + "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "accessList": [], - "v": "0x00", - "r": "0xff3fbb44abc71d2dee94a0b8877b22f7f4b49c1a83d79184a8c352607d5d2072", - "s": "0x4beecb447b8cfd0b5cb89a7d5cdf25790977a328eb410055be4d6bb702d23fa6", + "v": "0x01", + "r": "0x0c1fef5ea3a0f8740b54e5fe0408c9ce9d99b42ce538b36fc067d5752ab8ea5e", + "s": "0x618bb0f81f4e7a1b10283b3584c58b374d3d3ed78fcd768b34329656aead6a8d", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -1399,7 +1399,7 @@ "withdrawals": [] } ], - "lastblockhash": "0x0d526e96748501c47f088bff4e5c4ede71ace77b73d370fe7ffad3d132805772", + "lastblockhash": "0x3a96de7d2b35e6eef234601c18193e308a910a9f2546801042d982f3045f1b93", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -1444,16 +1444,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffe9f114", + "balance": "0xffffffffffffea01d0", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "011-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_3c87ec986c2656c2": { + "011-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_392169c16a2e5ef6": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1484,19 +1484,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00688fee8a867e36eb36eff84e1de8c36541a78c7671144321f8ae4ca01820c34a07b1cbfd4e24409ab544f63ab8e0a5f5b3d936f218303eed643e6e15ca08248fea092785c65bcd1aeb3bb581e4b3ae8387972fb5b894807002c7748608f81dbcde4b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830328340c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363066d928e13fe443e957d82e3e71d48cb65d51028eb4483e719bf8efcdf12f7c321991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c9b437dcd924834a69a566f90d8b83cb80e7c58a08da289389b3b1ffb528fd8bc9b92e6397c42b40a1e876ba116bdcc7f9c001a0d7be953f974f1fbb497344dd7e82e8a9f8f907ed98dafb0c7a1e462b7b35a6a5a003b5c6def1da64cc0774959a3019f1da04bcd576004e8c8a99945b90a413580bc0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07cc97310447fcaa82fdc3f873488df4eb10e7c70d50905dcf4d3ab721d106652a073574e54028e33ad01b4af5cc7e84dc575f67146acc32e52ad8e4002355692c8a024e67c66eca491a8172390693a89b89c1a73f4e051ac6bf6d65a9990d773849eb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830327c80c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000304962b3598a0adf33189fdfd9789feab1096ff40006900400000003fffffffca421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06aa86c458b3065e7ec244033a2ade91a7499561f482419a3a372c42a636dad98262a2ce926d142fd7cfe26ca148efe8b4c001a0d678cea8e66554926e473108363de892c0244b84ea29d4d288e62e254a54265ca07ab8176b3128def01d906a19a46f04f4cc9fabd6f75499e4e704500c1703d84ac0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x0688fee8a867e36eb36eff84e1de8c36541a78c7671144321f8ae4ca01820c34", - "transactionsTrie": "0x7b1cbfd4e24409ab544f63ab8e0a5f5b3d936f218303eed643e6e15ca08248fe", - "receiptTrie": "0x92785c65bcd1aeb3bb581e4b3ae8387972fb5b894807002c7748608f81dbcde4", + "stateRoot": "0x7cc97310447fcaa82fdc3f873488df4eb10e7c70d50905dcf4d3ab721d106652", + "transactionsTrie": "0x73574e54028e33ad01b4af5cc7e84dc575f67146acc32e52ad8e4002355692c8", + "receiptTrie": "0x24e67c66eca491a8172390693a89b89c1a73f4e051ac6bf6d65a9990d773849e", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x032834", + "gasUsed": "0x0327c8", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -1506,7 +1506,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xb731150e3e7ceff37012fbc1c67eeb8d733c42086310601ad1aef6f15e01e0ad" + "hash": "0x3fb31f2fed0b3def4347bc0213b7c5278d7914ab5e0c41ff1d71c9a2277d59e5" }, "blocknumber": "1", "transactions": [ @@ -1519,11 +1519,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363066d928e13fe443e957d82e3e71d48cb65d51028eb4483e719bf8efcdf12f7c321991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c9b437dcd924834a69a566f90d8b83cb80e7c58a08da289389b3b1ffb528fd8bc9b92e6397c42b40a1e876ba116bdcc7f9", + "data": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000304962b3598a0adf33189fdfd9789feab1096ff40006900400000003fffffffca421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06aa86c458b3065e7ec244033a2ade91a7499561f482419a3a372c42a636dad98262a2ce926d142fd7cfe26ca148efe8b4", "accessList": [], "v": "0x01", - "r": "0xd7be953f974f1fbb497344dd7e82e8a9f8f907ed98dafb0c7a1e462b7b35a6a5", - "s": "0x03b5c6def1da64cc0774959a3019f1da04bcd576004e8c8a99945b90a413580b", + "r": "0xd678cea8e66554926e473108363de892c0244b84ea29d4d288e62e254a54265c", + "s": "0x7ab8176b3128def01d906a19a46f04f4cc9fabd6f75499e4e704500c1703d84a", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -1531,7 +1531,7 @@ "withdrawals": [] } ], - "lastblockhash": "0xb731150e3e7ceff37012fbc1c67eeb8d733c42086310601ad1aef6f15e01e0ad", + "lastblockhash": "0x3fb31f2fed0b3def4347bc0213b7c5278d7914ab5e0c41ff1d71c9a2277d59e5", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -1576,16 +1576,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffe9e694", + "balance": "0xffffffffffffe9e988", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "012-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_3cd183d0bab85fb7": { + "012-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_395cf6d697d1a743": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1616,13 +1616,13 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0092ca77027ac1b9ca4a5cb57621c139371b077dd8335981de8c9db4a005b7fc4a04cc2a46823ba9ef5e125058016c67aaa54854dc72281150cd1a31ce02a934921a060d05e6d4f087896952e0161c798979dbef6212d3979c5cf31d4538884a22009b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303245c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a03bee59e36e4f614b18f8eafcdad25fb43379438388ce6fbf82816519161e0ebaa074e305b021b31e432b2e3a8f80fbcc4bd528d22b0a213092ed05aa71349de39dc0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0092ca77027ac1b9ca4a5cb57621c139371b077dd8335981de8c9db4a005b7fc4a049a925eb922da73de67e2944080379e4078dc8df996329fec5ebf2e61ee77911a060d05e6d4f087896952e0161c798979dbef6212d3979c5cf31d4538884a22009b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303245c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e3863773eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000000000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a05e5d495a95eea1e64aa3bdf92cbe528b70e5e81100472c3ef4ed1fdad748055ba04e210a87cb7bf98868e1246eb5d8212988c2783e420552ec24325e3a647ea07bc0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "stateRoot": "0x092ca77027ac1b9ca4a5cb57621c139371b077dd8335981de8c9db4a005b7fc4", - "transactionsTrie": "0x4cc2a46823ba9ef5e125058016c67aaa54854dc72281150cd1a31ce02a934921", + "transactionsTrie": "0x49a925eb922da73de67e2944080379e4078dc8df996329fec5ebf2e61ee77911", "receiptTrie": "0x60d05e6d4f087896952e0161c798979dbef6212d3979c5cf31d4538884a22009", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", @@ -1638,7 +1638,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x4479fb554e65baf663de4b950c86360abdceb8214bd1dddab7fadfae60905b38" + "hash": "0x779b5486e45d40883705c473c112306c4448997808ed1419e4bb8fbe42a9e920" }, "blocknumber": "1", "transactions": [ @@ -1651,11 +1651,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "data": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e3863773eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000000000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "accessList": [], - "v": "0x00", - "r": "0x3bee59e36e4f614b18f8eafcdad25fb43379438388ce6fbf82816519161e0eba", - "s": "0x74e305b021b31e432b2e3a8f80fbcc4bd528d22b0a213092ed05aa71349de39d", + "v": "0x01", + "r": "0x5e5d495a95eea1e64aa3bdf92cbe528b70e5e81100472c3ef4ed1fdad748055b", + "s": "0x4e210a87cb7bf98868e1246eb5d8212988c2783e420552ec24325e3a647ea07b", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -1663,7 +1663,7 @@ "withdrawals": [] } ], - "lastblockhash": "0x4479fb554e65baf663de4b950c86360abdceb8214bd1dddab7fadfae60905b38", + "lastblockhash": "0x779b5486e45d40883705c473c112306c4448997808ed1419e4bb8fbe42a9e920", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -1715,9 +1715,9 @@ }, "sealEngine": "NoProof" }, - "013-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_420f2a187ce77035": { + "013-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_3ac8dc31e9aa6a70": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1748,19 +1748,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d2a59cc9dd3c830b051dc217edd0b42a868fae6b41431a02e1666bda1833b9b1a0fb4648b9bdb1b09117c15f53cb5a617590dc4469b4c279ceb11fa47e64533543a0a28962db15985dce9fc1f5c2c6e1bbc9c7be1f3fb810bb3e8ec0b6c2a227b1f3b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326c00c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff00000000000000000000000000000000000000000000000000000000000000022bf4e1f980eb94661a21affc4d7e6e56f214fe3e7dc4d20b98c66ffd43cabeb0991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c99956ed657b632d9de65783593320c0b0f4195ca853c9616ba11e244bf2333f6da4755883e9995210b20fbd78f9c205a5c080a0f86136db60a0d1a9d22e454a4d5100b8171b90d56d2e796b7cea6b3aa9edec83a07b35a05f8bb65ebc114f365c5b1d2fed84a5f898e2ac82cb9a827d8cd9af400ec0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa002e49a5b61d560438e797b371a948baa544418d3ea542e48cc62401567b3b321a023c2e283739049651d077fdfc364eb7d4e6f26c0eb394e58898f13fd4823519ca007194d446d05e8c42fac0ab572a81e5572a2dbd57e309129ed37cfff436b5affb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303221c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401473eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0cdcb82e08bcb8bb0eb6de7c1e142a910aa413891c9deeccd0c650737f5407307a06df091d7bdd64b38d24910e969040afa2f65abd8b0ddf8c42ce5e582edfcf4fec0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xd2a59cc9dd3c830b051dc217edd0b42a868fae6b41431a02e1666bda1833b9b1", - "transactionsTrie": "0xfb4648b9bdb1b09117c15f53cb5a617590dc4469b4c279ceb11fa47e64533543", - "receiptTrie": "0xa28962db15985dce9fc1f5c2c6e1bbc9c7be1f3fb810bb3e8ec0b6c2a227b1f3", + "stateRoot": "0x02e49a5b61d560438e797b371a948baa544418d3ea542e48cc62401567b3b321", + "transactionsTrie": "0x23c2e283739049651d077fdfc364eb7d4e6f26c0eb394e58898f13fd4823519c", + "receiptTrie": "0x07194d446d05e8c42fac0ab572a81e5572a2dbd57e309129ed37cfff436b5aff", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x0326c0", + "gasUsed": "0x03221c", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -1770,7 +1770,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x96004a854a4b2618e32086f5390c7ab502104d2c5bf49dce02e70ee448474001" + "hash": "0x290bf0da14e9633aab43e0b391ecf236bdfca6ec38af81aec507dba2898c90ac" }, "blocknumber": "1", "transactions": [ @@ -1783,11 +1783,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff00000000000000000000000000000000000000000000000000000000000000022bf4e1f980eb94661a21affc4d7e6e56f214fe3e7dc4d20b98c66ffd43cabeb0991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c99956ed657b632d9de65783593320c0b0f4195ca853c9616ba11e244bf2333f6da4755883e9995210b20fbd78f9c205a5", + "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401473eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "accessList": [], "v": "0x00", - "r": "0xf86136db60a0d1a9d22e454a4d5100b8171b90d56d2e796b7cea6b3aa9edec83", - "s": "0x7b35a05f8bb65ebc114f365c5b1d2fed84a5f898e2ac82cb9a827d8cd9af400e", + "r": "0xcdcb82e08bcb8bb0eb6de7c1e142a910aa413891c9deeccd0c650737f5407307", + "s": "0x6df091d7bdd64b38d24910e969040afa2f65abd8b0ddf8c42ce5e582edfcf4fe", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -1795,7 +1795,7 @@ "withdrawals": [] } ], - "lastblockhash": "0x96004a854a4b2618e32086f5390c7ab502104d2c5bf49dce02e70ee448474001", + "lastblockhash": "0x290bf0da14e9633aab43e0b391ecf236bdfca6ec38af81aec507dba2898c90ac", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -1840,16 +1840,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffe9f0c0", + "balance": "0xffffffffffffea113c", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "014-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_444b73ff54a19b44": { + "014-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_3c1e8b38219e3e12": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1880,19 +1880,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d2a59cc9dd3c830b051dc217edd0b42a868fae6b41431a02e1666bda1833b9b1a0408f4a0ec54734fbc9dcfd9dd4d37dfdc696127ca9a0bc5cff44d7d10c368d04a0a28962db15985dce9fc1f5c2c6e1bbc9c7be1f3fb810bb3e8ec0b6c2a227b1f3b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326c00c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b90000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd51a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca7807b160e50107d5af2ac0c93eedc658eeb776d2416ecd9579b976795d0719eead66791c9603c703dc50a108d56823a98c080a09849cc7d35d8eed85743c4cd106d4fdb9221a16f72d1aca93459b4113d378058a003083ef391f8c36ad0b2f778109103113dca52888b96bc9e29d861b3517703b0c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04159354b4217bfcfc25d574fbf48fd1422887e5256ef0bec95b34fa1d2837ceaa00e963416d15be0d3a5cd99152b9674c916a944b4df2288e276655641511b312fa0ddac6235f1c3c7cf7be43069c6158087a3c278228d25e5f410defca825999683b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326a80c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1000000000000000000000000000000000000000000000000000000000000000050625ad853cc21ba40594f79591e5d35c445ecf9453014da6524c0cf6367c359a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06b72d80393dc39beea3857cb3719277138876b2b207f1d5e54dd62a14e3242d123b5a6db066181ff01a51c26c9d2f400bc001a0151b808659ccfe811301c4788adb2db2dfe21a81a72012b60bee9a2bae100196a00cb5d87c6b81f3278488c06a59191c62c345510b9be93e110dc7170d819084e5c0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xd2a59cc9dd3c830b051dc217edd0b42a868fae6b41431a02e1666bda1833b9b1", - "transactionsTrie": "0x408f4a0ec54734fbc9dcfd9dd4d37dfdc696127ca9a0bc5cff44d7d10c368d04", - "receiptTrie": "0xa28962db15985dce9fc1f5c2c6e1bbc9c7be1f3fb810bb3e8ec0b6c2a227b1f3", + "stateRoot": "0x4159354b4217bfcfc25d574fbf48fd1422887e5256ef0bec95b34fa1d2837cea", + "transactionsTrie": "0x0e963416d15be0d3a5cd99152b9674c916a944b4df2288e276655641511b312f", + "receiptTrie": "0xddac6235f1c3c7cf7be43069c6158087a3c278228d25e5f410defca825999683", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x0326c0", + "gasUsed": "0x0326a8", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -1902,7 +1902,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x2883996f0dbf3beb1dd18332841d646cd2582d096268e0fca27138c60dbd1d54" + "hash": "0x00af2784d23487e9d271d8880c38b74f50ff3ecca33d8d195e94e906fef7b444" }, "blocknumber": "1", "transactions": [ @@ -1915,11 +1915,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b90000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd51a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca7807b160e50107d5af2ac0c93eedc658eeb776d2416ecd9579b976795d0719eead66791c9603c703dc50a108d56823a98", + "data": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1000000000000000000000000000000000000000000000000000000000000000050625ad853cc21ba40594f79591e5d35c445ecf9453014da6524c0cf6367c359a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06b72d80393dc39beea3857cb3719277138876b2b207f1d5e54dd62a14e3242d123b5a6db066181ff01a51c26c9d2f400b", "accessList": [], - "v": "0x00", - "r": "0x9849cc7d35d8eed85743c4cd106d4fdb9221a16f72d1aca93459b4113d378058", - "s": "0x03083ef391f8c36ad0b2f778109103113dca52888b96bc9e29d861b3517703b0", + "v": "0x01", + "r": "0x151b808659ccfe811301c4788adb2db2dfe21a81a72012b60bee9a2bae100196", + "s": "0x0cb5d87c6b81f3278488c06a59191c62c345510b9be93e110dc7170d819084e5", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -1927,7 +1927,7 @@ "withdrawals": [] } ], - "lastblockhash": "0x2883996f0dbf3beb1dd18332841d646cd2582d096268e0fca27138c60dbd1d54", + "lastblockhash": "0x00af2784d23487e9d271d8880c38b74f50ff3ecca33d8d195e94e906fef7b444", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -1972,16 +1972,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffe9f0c0", + "balance": "0xffffffffffffe9f168", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "015-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_53a9bdf4f75196da": { + "015-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_3c87ec986c2656c2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2012,19 +2012,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07f3883ffa14957b40eb562671dcea363bd5c7fc6a7b66f1bfcf0c46f31c80d38a02d20c80c52cbd19954aa77bf2f5512aceb1e572f72e74376ca6c02226f7b64fba0d0179d1c2909b1b81337f65599be06808e23ec2e973e6f1433ba40d73f09e983b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830325d00c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d3630673eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a07988bf664125ab6a3164310a5eacfeb471f2badb877190fefcadb628ce91d71ea045a1135742920b01a39c9de56a92b53c6018d3c9a1aa423f7888d870506f0ac4c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b5fb155286d38e5d9a3a01251b3c3c6207217d84aa806abdeefaf029843896b0a06dbdee5ff5d24cefd571b4be8867465b926774ac7d13983e74206e2922855daba0ee652a06815a432d5f2b3e9ecff47f1da5ea293bca394f6d08fc63db91569906b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830328280c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363066d928e13fe443e957d82e3e71d48cb65d51028eb4483e719bf8efcdf12f7c321a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06a444d6bb5aadc3ceb615b50d6606bd54bfe529f59247987cd1ab848d19de599a9052f1835fb0d0d44cf70183e19a68c9c080a065ad99046fa60994d98049bf11bd7a1b8e3d9bac77dd8430ac504ebcd791c664a0251815b3d5d650c64c1cef1e5cac22fa5db5261de82303d0b089304623563bf6c0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x7f3883ffa14957b40eb562671dcea363bd5c7fc6a7b66f1bfcf0c46f31c80d38", - "transactionsTrie": "0x2d20c80c52cbd19954aa77bf2f5512aceb1e572f72e74376ca6c02226f7b64fb", - "receiptTrie": "0xd0179d1c2909b1b81337f65599be06808e23ec2e973e6f1433ba40d73f09e983", + "stateRoot": "0xb5fb155286d38e5d9a3a01251b3c3c6207217d84aa806abdeefaf029843896b0", + "transactionsTrie": "0x6dbdee5ff5d24cefd571b4be8867465b926774ac7d13983e74206e2922855dab", + "receiptTrie": "0xee652a06815a432d5f2b3e9ecff47f1da5ea293bca394f6d08fc63db91569906", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x0325d0", + "gasUsed": "0x032828", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -2034,7 +2034,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xb822f7ae7e51e4d2292e49525b4aa3143172b05b7341aae712b07fc8b0bf1ae2" + "hash": "0x41de1c6ff6589caea81fd364f0a89ff3800b0f0e3bd603d2536acb4908de72b0" }, "blocknumber": "1", "transactions": [ @@ -2047,11 +2047,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d3630673eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "data": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363066d928e13fe443e957d82e3e71d48cb65d51028eb4483e719bf8efcdf12f7c321a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06a444d6bb5aadc3ceb615b50d6606bd54bfe529f59247987cd1ab848d19de599a9052f1835fb0d0d44cf70183e19a68c9", "accessList": [], - "v": "0x01", - "r": "0x7988bf664125ab6a3164310a5eacfeb471f2badb877190fefcadb628ce91d71e", - "s": "0x45a1135742920b01a39c9de56a92b53c6018d3c9a1aa423f7888d870506f0ac4", + "v": "0x00", + "r": "0x65ad99046fa60994d98049bf11bd7a1b8e3d9bac77dd8430ac504ebcd791c664", + "s": "0x251815b3d5d650c64c1cef1e5cac22fa5db5261de82303d0b089304623563bf6", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -2059,7 +2059,7 @@ "withdrawals": [] } ], - "lastblockhash": "0xb822f7ae7e51e4d2292e49525b4aa3143172b05b7341aae712b07fc8b0bf1ae2", + "lastblockhash": "0x41de1c6ff6589caea81fd364f0a89ff3800b0f0e3bd603d2536acb4908de72b0", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -2104,16 +2104,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffe9f750", + "balance": "0xffffffffffffe9e6e8", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "016-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_7db4f140a955dd1a": { + "016-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_3cd183d0bab85fb7": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2144,19 +2144,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa016bb0b491c8bb7563e8b45b262e9ffbb52f784d3d3b2b311b4ea770b3327dbd4a046551e36b570ce1310b3a125c62dcde41593c1f58eb66b60aee663fd65f4026ea0d9e5a739c73b28835dce3f225dee047f95fe57369e598630dd3a897c7623ece8b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830328040c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b973eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000058cdc98c4c44791bb8ba7e58a80324ef8c021c79c68e253c430fa2663188f7f2a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca788bfb4ce7aa40228147817d8b5ddad533e456b622dea6733e1813b8d1ce9e03ef5fb58d983e29da3187ba840c5a79759c080a05499ec7fc39c8cad3bac53f471e4fffca077c33dc9e879c0ed791b63b06a15bea0473ed87fde84d2968bfb93702b9c49bcd54ae648f0355e94f3553777ae7b0abdc0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0092ca77027ac1b9ca4a5cb57621c139371b077dd8335981de8c9db4a005b7fc4a04cc2a46823ba9ef5e125058016c67aaa54854dc72281150cd1a31ce02a934921a060d05e6d4f087896952e0161c798979dbef6212d3979c5cf31d4538884a22009b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303245c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a03bee59e36e4f614b18f8eafcdad25fb43379438388ce6fbf82816519161e0ebaa074e305b021b31e432b2e3a8f80fbcc4bd528d22b0a213092ed05aa71349de39dc0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x16bb0b491c8bb7563e8b45b262e9ffbb52f784d3d3b2b311b4ea770b3327dbd4", - "transactionsTrie": "0x46551e36b570ce1310b3a125c62dcde41593c1f58eb66b60aee663fd65f4026e", - "receiptTrie": "0xd9e5a739c73b28835dce3f225dee047f95fe57369e598630dd3a897c7623ece8", + "stateRoot": "0x092ca77027ac1b9ca4a5cb57621c139371b077dd8335981de8c9db4a005b7fc4", + "transactionsTrie": "0x4cc2a46823ba9ef5e125058016c67aaa54854dc72281150cd1a31ce02a934921", + "receiptTrie": "0x60d05e6d4f087896952e0161c798979dbef6212d3979c5cf31d4538884a22009", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x032804", + "gasUsed": "0x03245c", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -2166,7 +2166,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x53c440e41e48c40007282910d128ed39efbfff21b89bde109dbf6723d082175c" + "hash": "0x4479fb554e65baf663de4b950c86360abdceb8214bd1dddab7fadfae60905b38" }, "blocknumber": "1", "transactions": [ @@ -2179,11 +2179,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b973eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000058cdc98c4c44791bb8ba7e58a80324ef8c021c79c68e253c430fa2663188f7f2a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca788bfb4ce7aa40228147817d8b5ddad533e456b622dea6733e1813b8d1ce9e03ef5fb58d983e29da3187ba840c5a79759", + "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "accessList": [], "v": "0x00", - "r": "0x5499ec7fc39c8cad3bac53f471e4fffca077c33dc9e879c0ed791b63b06a15be", - "s": "0x473ed87fde84d2968bfb93702b9c49bcd54ae648f0355e94f3553777ae7b0abd", + "r": "0x3bee59e36e4f614b18f8eafcdad25fb43379438388ce6fbf82816519161e0eba", + "s": "0x74e305b021b31e432b2e3a8f80fbcc4bd528d22b0a213092ed05aa71349de39d", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -2191,7 +2191,7 @@ "withdrawals": [] } ], - "lastblockhash": "0x53c440e41e48c40007282910d128ed39efbfff21b89bde109dbf6723d082175c", + "lastblockhash": "0x4479fb554e65baf663de4b950c86360abdceb8214bd1dddab7fadfae60905b38", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -2236,16 +2236,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffe9e7e4", + "balance": "0xffffffffffffea017c", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "017-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_83e53423a2dd93fe": { + "017-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_420f2a187ce77035": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2276,19 +2276,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05ce79e06e93755883c681653ed1373893d31a0800384fd305f47d7a039076749a07279a050fd8efe3d997e93091f222c3fcc8bbbad562d19f92c0ae14483c5825aa099cc7e90b41f23e91cea893ec59e04a28e472185d64013784cfed89e8dde1a64b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326900c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff00000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffe991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c992cccc70d97c2eeb444077721221cbf048a7bcd5742a1c896c868672527c8fb92687db1d8c6970064375957af91b0b89c001a0cb7b1454bfa0c4a760e33af49661acd7b4d777fca3de31e945858fe718cd185fa05a53b3ab897a7cd0407c48050758ba22f1896e2d80dfc830d98dafaae435b64dc0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04159354b4217bfcfc25d574fbf48fd1422887e5256ef0bec95b34fa1d2837ceaa02b9f94b53eec56840c51f3286f960f32edcfe09abdd0220af1f2639ef4664d4da0ddac6235f1c3c7cf7be43069c6158087a3c278228d25e5f410defca825999683b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326a80c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f100000000000000000000000000000000000000000000000000000000000000022bf4e1f980eb94661a21affc4d7e6e56f214fe3e7dc4d20b98c66ffd43cabeb0a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d0689012990b0ca02775bd9df8145f6c936444b83f54df1f5f274fb4312800a6505dd000ee8ec7b0ea6d72092a3daf0bffbc001a066027d84b8afca376d92300737100ec643b920f5c726945852c74213b24f2ac0a0059b3c8ac597bd7da74db18e0f2c8f35a8af8a9b552e114cc4c388a87f970080c0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5ce79e06e93755883c681653ed1373893d31a0800384fd305f47d7a039076749", - "transactionsTrie": "0x7279a050fd8efe3d997e93091f222c3fcc8bbbad562d19f92c0ae14483c5825a", - "receiptTrie": "0x99cc7e90b41f23e91cea893ec59e04a28e472185d64013784cfed89e8dde1a64", + "stateRoot": "0x4159354b4217bfcfc25d574fbf48fd1422887e5256ef0bec95b34fa1d2837cea", + "transactionsTrie": "0x2b9f94b53eec56840c51f3286f960f32edcfe09abdd0220af1f2639ef4664d4d", + "receiptTrie": "0xddac6235f1c3c7cf7be43069c6158087a3c278228d25e5f410defca825999683", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x032690", + "gasUsed": "0x0326a8", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -2298,7 +2298,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1bcbb678769459f713545a76fa513c040f4367063984b45966c12311f8dadc3f" + "hash": "0xa2a6c215a3ae2f9622129d76f8c00a7c74a4baa8a16f776cf2723c96ad4167de" }, "blocknumber": "1", "transactions": [ @@ -2311,11 +2311,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff00000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffe991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c992cccc70d97c2eeb444077721221cbf048a7bcd5742a1c896c868672527c8fb92687db1d8c6970064375957af91b0b89", + "data": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f100000000000000000000000000000000000000000000000000000000000000022bf4e1f980eb94661a21affc4d7e6e56f214fe3e7dc4d20b98c66ffd43cabeb0a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d0689012990b0ca02775bd9df8145f6c936444b83f54df1f5f274fb4312800a6505dd000ee8ec7b0ea6d72092a3daf0bffb", "accessList": [], "v": "0x01", - "r": "0xcb7b1454bfa0c4a760e33af49661acd7b4d777fca3de31e945858fe718cd185f", - "s": "0x5a53b3ab897a7cd0407c48050758ba22f1896e2d80dfc830d98dafaae435b64d", + "r": "0x66027d84b8afca376d92300737100ec643b920f5c726945852c74213b24f2ac0", + "s": "0x059b3c8ac597bd7da74db18e0f2c8f35a8af8a9b552e114cc4c388a87f970080", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -2323,7 +2323,7 @@ "withdrawals": [] } ], - "lastblockhash": "0x1bcbb678769459f713545a76fa513c040f4367063984b45966c12311f8dadc3f", + "lastblockhash": "0xa2a6c215a3ae2f9622129d76f8c00a7c74a4baa8a16f776cf2723c96ad4167de", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -2368,16 +2368,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffe9f210", + "balance": "0xffffffffffffe9f168", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "018-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_9b24f8997145435c": { + "018-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_444b73ff54a19b44": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2408,19 +2408,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ded63c14301d2a81da551b4c4a311bb038e1f24b5932804eec0a811898b0a45ba04593efcd83a2bb60e68dbfbed0633436742209bf3f1fcd25412e5063c494b0ffa05d1e41d4bf154602e8b08528262ac05321dbcf9598e7e2a5bcca123f41485f6cb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830325340c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc500000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000b09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440ef87177e99700d9be917c648299b919b210d0449761bfd425c6fbf7c9cb48c44525715bf62bad3fe046a066ac3b1c747fcc080a00352ea47e3592e0f854ff65972aa1e79e0692b81e403a56a4198f2eee7c37131a063c2b3341e9249b23f8160046ff0a7ca55bc0d742ca9e091657211639be8f8cbc0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d2a59cc9dd3c830b051dc217edd0b42a868fae6b41431a02e1666bda1833b9b1a08b68e65eba37ecde36e3ae469ea1a4ca0730cf32c87545c1df2fbd7419b510f4a0a28962db15985dce9fc1f5c2c6e1bbc9c7be1f3fb810bb3e8ec0b6c2a227b1f3b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326c00c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e0000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd51b49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193aa060b350ad63d61979b80b25258e7cc6caf781080222e0209b4a0b074decca874afc5c41de3313d8ed217d905e6ada43c080a09ccdbb5ec0941f399dadd55bf451be3c606cc76f0afac3c1d383a2cfd77f2217a020f6645644bb64019245bfc1b544333ef6f8b897e46f3dc675576fbcb90711c5c0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xded63c14301d2a81da551b4c4a311bb038e1f24b5932804eec0a811898b0a45b", - "transactionsTrie": "0x4593efcd83a2bb60e68dbfbed0633436742209bf3f1fcd25412e5063c494b0ff", - "receiptTrie": "0x5d1e41d4bf154602e8b08528262ac05321dbcf9598e7e2a5bcca123f41485f6c", + "stateRoot": "0xd2a59cc9dd3c830b051dc217edd0b42a868fae6b41431a02e1666bda1833b9b1", + "transactionsTrie": "0x8b68e65eba37ecde36e3ae469ea1a4ca0730cf32c87545c1df2fbd7419b510f4", + "receiptTrie": "0xa28962db15985dce9fc1f5c2c6e1bbc9c7be1f3fb810bb3e8ec0b6c2a227b1f3", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x032534", + "gasUsed": "0x0326c0", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -2430,7 +2430,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x73a2769be161d1583d2026105adab2735c0e0d72864541d14f9e894824c4c339" + "hash": "0x617bb359f99934463a0d4913db6650f53d2a58818ead69b693ca2f4117c6e576" }, "blocknumber": "1", "transactions": [ @@ -2443,11 +2443,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc500000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000b09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440ef87177e99700d9be917c648299b919b210d0449761bfd425c6fbf7c9cb48c44525715bf62bad3fe046a066ac3b1c747fc", + "data": "0x01228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e0000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd51b49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193aa060b350ad63d61979b80b25258e7cc6caf781080222e0209b4a0b074decca874afc5c41de3313d8ed217d905e6ada43", "accessList": [], "v": "0x00", - "r": "0x0352ea47e3592e0f854ff65972aa1e79e0692b81e403a56a4198f2eee7c37131", - "s": "0x63c2b3341e9249b23f8160046ff0a7ca55bc0d742ca9e091657211639be8f8cb", + "r": "0x9ccdbb5ec0941f399dadd55bf451be3c606cc76f0afac3c1d383a2cfd77f2217", + "s": "0x20f6645644bb64019245bfc1b544333ef6f8b897e46f3dc675576fbcb90711c5", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -2455,7 +2455,7 @@ "withdrawals": [] } ], - "lastblockhash": "0x73a2769be161d1583d2026105adab2735c0e0d72864541d14f9e894824c4c339", + "lastblockhash": "0x617bb359f99934463a0d4913db6650f53d2a58818ead69b693ca2f4117c6e576", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -2500,16 +2500,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffe9fb94", + "balance": "0xffffffffffffe9f0c0", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "019-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_9b754afb690c47e1": { + "019-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_53a9bdf4f75196da": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2540,19 +2540,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0092ca77027ac1b9ca4a5cb57621c139371b077dd8335981de8c9db4a005b7fc4a0066d0b363c0bb2276ca921f5f21c99458474c5cf5575847e8e2d346fdb8b5a35a060d05e6d4f087896952e0161c798979dbef6212d3979c5cf31d4538884a22009b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303245c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000273eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a071beb5a23407fea3443dd51aa5a26f71159ba51dee33fe8d498ac86938dca41fa02a04e2fcf01f80c621c1e4747db039792fec223c7d25ecb1e53ec6dc05b435c3c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07f3883ffa14957b40eb562671dcea363bd5c7fc6a7b66f1bfcf0c46f31c80d38a02d20c80c52cbd19954aa77bf2f5512aceb1e572f72e74376ca6c02226f7b64fba0d0179d1c2909b1b81337f65599be06808e23ec2e973e6f1433ba40d73f09e983b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830325d00c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d3630673eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a07988bf664125ab6a3164310a5eacfeb471f2badb877190fefcadb628ce91d71ea045a1135742920b01a39c9de56a92b53c6018d3c9a1aa423f7888d870506f0ac4c0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x092ca77027ac1b9ca4a5cb57621c139371b077dd8335981de8c9db4a005b7fc4", - "transactionsTrie": "0x066d0b363c0bb2276ca921f5f21c99458474c5cf5575847e8e2d346fdb8b5a35", - "receiptTrie": "0x60d05e6d4f087896952e0161c798979dbef6212d3979c5cf31d4538884a22009", + "stateRoot": "0x7f3883ffa14957b40eb562671dcea363bd5c7fc6a7b66f1bfcf0c46f31c80d38", + "transactionsTrie": "0x2d20c80c52cbd19954aa77bf2f5512aceb1e572f72e74376ca6c02226f7b64fb", + "receiptTrie": "0xd0179d1c2909b1b81337f65599be06808e23ec2e973e6f1433ba40d73f09e983", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x03245c", + "gasUsed": "0x0325d0", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -2562,7 +2562,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x164428cb64d1db206b96e4b17b944bb87a613123d0307305e27961da9a20b40a" + "hash": "0xb822f7ae7e51e4d2292e49525b4aa3143172b05b7341aae712b07fc8b0bf1ae2" }, "blocknumber": "1", "transactions": [ @@ -2575,11 +2575,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000273eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d3630673eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "accessList": [], - "v": "0x00", - "r": "0x71beb5a23407fea3443dd51aa5a26f71159ba51dee33fe8d498ac86938dca41f", - "s": "0x2a04e2fcf01f80c621c1e4747db039792fec223c7d25ecb1e53ec6dc05b435c3", + "v": "0x01", + "r": "0x7988bf664125ab6a3164310a5eacfeb471f2badb877190fefcadb628ce91d71e", + "s": "0x45a1135742920b01a39c9de56a92b53c6018d3c9a1aa423f7888d870506f0ac4", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -2587,7 +2587,7 @@ "withdrawals": [] } ], - "lastblockhash": "0x164428cb64d1db206b96e4b17b944bb87a613123d0307305e27961da9a20b40a", + "lastblockhash": "0xb822f7ae7e51e4d2292e49525b4aa3143172b05b7341aae712b07fc8b0bf1ae2", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -2632,16 +2632,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffea017c", + "balance": "0xffffffffffffe9f750", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "020-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_af669445747d2585": { + "020-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_585454b31673dd62": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2672,19 +2672,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00688fee8a867e36eb36eff84e1de8c36541a78c7671144321f8ae4ca01820c34a04189b0fc6a65b4ba8f83b5d20f2723715a4380114bb3b6835fa582e983d1e711a092785c65bcd1aeb3bb581e4b3ae8387972fb5b894807002c7748608f81dbcde4b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830328340c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363066c28d6edfea2f5e1638cb1a8be8197549d52e133fa9dae87e52abb45f7b192dda6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca7ad37aa0a5c07d64c137a3cc01893418c1ae6e766ca8842a295cad27cbde933aad4f499d96619f957a730d014927eaf72c080a053772f6f14038064762d55af0d02216131ce0d88b5e9bf719feb797d6558a742a06fe86cc2d9bdf117e40a328f99167dfa3ed9d3a2c280099fca1c2372b9bccc67c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d46a4550e8ad1b69c10e07338f772b34c3365beade08f7bbffbeab6c9335524aa0282b431779e1edd7b75fd86161bdd6e347546fad2b2284d67f952e5755adb094a096b754aa64debb4f75196685c39339e3cfc406785621fa534c4690b8f3449dccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303230c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e3863700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a061f61fd735c0e515d2d6f3cbbbc9d3a8cde28c0bc8c4b46ac6e0975a0b9d78eba043a0f69d32510e18b654902012185f7454f8528aafed5ff1067c6f2342bc16f2c0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x0688fee8a867e36eb36eff84e1de8c36541a78c7671144321f8ae4ca01820c34", - "transactionsTrie": "0x4189b0fc6a65b4ba8f83b5d20f2723715a4380114bb3b6835fa582e983d1e711", - "receiptTrie": "0x92785c65bcd1aeb3bb581e4b3ae8387972fb5b894807002c7748608f81dbcde4", + "stateRoot": "0xd46a4550e8ad1b69c10e07338f772b34c3365beade08f7bbffbeab6c9335524a", + "transactionsTrie": "0x282b431779e1edd7b75fd86161bdd6e347546fad2b2284d67f952e5755adb094", + "receiptTrie": "0x96b754aa64debb4f75196685c39339e3cfc406785621fa534c4690b8f3449dcc", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x032834", + "gasUsed": "0x03230c", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -2694,7 +2694,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x4ad811ec3d9e4a5b1c5471cfd6da836b5b4b12ed6a5d6e2079007727f8903876" + "hash": "0xaa57f81b8a5c24c452e8946c997713aa13d839c5d9432d876fcc53ea8467e09e" }, "blocknumber": "1", "transactions": [ @@ -2707,11 +2707,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363066c28d6edfea2f5e1638cb1a8be8197549d52e133fa9dae87e52abb45f7b192dda6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca7ad37aa0a5c07d64c137a3cc01893418c1ae6e766ca8842a295cad27cbde933aad4f499d96619f957a730d014927eaf72", + "data": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e3863700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "accessList": [], - "v": "0x00", - "r": "0x53772f6f14038064762d55af0d02216131ce0d88b5e9bf719feb797d6558a742", - "s": "0x6fe86cc2d9bdf117e40a328f99167dfa3ed9d3a2c280099fca1c2372b9bccc67", + "v": "0x01", + "r": "0x61f61fd735c0e515d2d6f3cbbbc9d3a8cde28c0bc8c4b46ac6e0975a0b9d78eb", + "s": "0x43a0f69d32510e18b654902012185f7454f8528aafed5ff1067c6f2342bc16f2", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -2719,7 +2719,7 @@ "withdrawals": [] } ], - "lastblockhash": "0x4ad811ec3d9e4a5b1c5471cfd6da836b5b4b12ed6a5d6e2079007727f8903876", + "lastblockhash": "0xaa57f81b8a5c24c452e8946c997713aa13d839c5d9432d876fcc53ea8467e09e", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -2764,16 +2764,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffe9e694", + "balance": "0xffffffffffffea0aac", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "021-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_af8b75f664ed7d43": { + "021-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_7db4f140a955dd1a": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2804,19 +2804,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09d5a65cc5fbc0b6888f1ca061efcdc9dbd670aa7f06ca8ef23623acb629bd5d1a0d4b593b9620dbdf5fc6eeff42ade9d1d3b9c65f35eadb26be34e7fad5a0fcda6a0f2770ea2a80642c8e6b1a1748dfaf23bd1caeb8b204723206ab66564d463d030b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326b40c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5000000000000000000000000000000000000000000000000000000000000000264d3b6baf69395bde2abd1d43f99be66bc64581234fd363e2ae3a0d419cfc3fcb09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440ef8efb5f81312368c3d0778349fa9a37838d9da05f5019f13e98c451d44adbeaa24385efecc246958bc1e80ade37693425c080a0d57e78f2a5f190e8f97666a783bbc5aebf5cb1107a447b3a888d84b9e84a78a5a007e6a42d9564a5d6c774f0861246c710d6b751c173aad84385b31aa822a8a24fc0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa016bb0b491c8bb7563e8b45b262e9ffbb52f784d3d3b2b311b4ea770b3327dbd4a00d60273b5913393d18b1dee6f0bacf412e39d5f0a17635fcf060e97c1c1acf21a0d9e5a739c73b28835dce3f225dee047f95fe57369e598630dd3a897c7623ece8b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830328040c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000058cdc98c4c44791bb8ba7e58a80324ef8c021c79c68e253c430fa2663188f7f2b49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193a9506a8dc7f3f720a592a79a4e711e28d8596854bac66b9cb2d6d361704f1735442d47ea09fda5e0984f0928ce7d2f5f6c080a07a8a5d3c14755c2b79477b0f01e07472e1efe376361f355d19c79fae5a944ef5a06dc7422c4897f446a3b9775e688ffcd21a7070a4b4e1fdbb9b676d97e7a49e10c0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9d5a65cc5fbc0b6888f1ca061efcdc9dbd670aa7f06ca8ef23623acb629bd5d1", - "transactionsTrie": "0xd4b593b9620dbdf5fc6eeff42ade9d1d3b9c65f35eadb26be34e7fad5a0fcda6", - "receiptTrie": "0xf2770ea2a80642c8e6b1a1748dfaf23bd1caeb8b204723206ab66564d463d030", + "stateRoot": "0x16bb0b491c8bb7563e8b45b262e9ffbb52f784d3d3b2b311b4ea770b3327dbd4", + "transactionsTrie": "0x0d60273b5913393d18b1dee6f0bacf412e39d5f0a17635fcf060e97c1c1acf21", + "receiptTrie": "0xd9e5a739c73b28835dce3f225dee047f95fe57369e598630dd3a897c7623ece8", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x0326b4", + "gasUsed": "0x032804", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -2826,7 +2826,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5eb2ac10109074f5552bcd7dfca728860d7cfc7631b7a0dc9c12725e2bbbae08" + "hash": "0xd887114b3cad6bd08b4df188cda62eb9953c036c2f19a7696267e9aefb08c119" }, "blocknumber": "1", "transactions": [ @@ -2839,11 +2839,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5000000000000000000000000000000000000000000000000000000000000000264d3b6baf69395bde2abd1d43f99be66bc64581234fd363e2ae3a0d419cfc3fcb09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440ef8efb5f81312368c3d0778349fa9a37838d9da05f5019f13e98c451d44adbeaa24385efecc246958bc1e80ade37693425", + "data": "0x01228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000058cdc98c4c44791bb8ba7e58a80324ef8c021c79c68e253c430fa2663188f7f2b49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193a9506a8dc7f3f720a592a79a4e711e28d8596854bac66b9cb2d6d361704f1735442d47ea09fda5e0984f0928ce7d2f5f6", "accessList": [], "v": "0x00", - "r": "0xd57e78f2a5f190e8f97666a783bbc5aebf5cb1107a447b3a888d84b9e84a78a5", - "s": "0x07e6a42d9564a5d6c774f0861246c710d6b751c173aad84385b31aa822a8a24f", + "r": "0x7a8a5d3c14755c2b79477b0f01e07472e1efe376361f355d19c79fae5a944ef5", + "s": "0x6dc7422c4897f446a3b9775e688ffcd21a7070a4b4e1fdbb9b676d97e7a49e10", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -2851,7 +2851,7 @@ "withdrawals": [] } ], - "lastblockhash": "0x5eb2ac10109074f5552bcd7dfca728860d7cfc7631b7a0dc9c12725e2bbbae08", + "lastblockhash": "0xd887114b3cad6bd08b4df188cda62eb9953c036c2f19a7696267e9aefb08c119", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -2896,16 +2896,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffe9f114", + "balance": "0xffffffffffffe9e7e4", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "022-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_b6cb6698327d9835": { + "022-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_83e53423a2dd93fe": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2936,19 +2936,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d2a59cc9dd3c830b051dc217edd0b42a868fae6b41431a02e1666bda1833b9b1a0a4e536663a2fc69085f7840b69133fadb77d1e84afd3cefd4b76ca6407ea63f5a0a28962db15985dce9fc1f5c2c6e1bbc9c7be1f3fb810bb3e8ec0b6c2a227b1f3b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326c00c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b900000000000000000000000000000000000000000000000000000000000000026a75e4fe63e5e148c853462a680c3e3ccedea34719d28f19bf1b35ae4eea37d6a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca78be986bb46235d7dace424c585d8160a7ffb0be6cf09844d5dc50cd6f14f9d9b4a39cb187d590d5b9fabc41efe31673bc001a070323221eae38ee9a767b892b94d595668db743b35fd6ceb24cb5fcbbb60fd7ba012f19a53389cc10a14781ef0cf8ebe955259e6fbb0b847169d6616c4e0dd41a0c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d43e78e392975e2508273a97b39ee52dfa7d0daa6bef48c460fd310610e53474a0a16b3a4a571e5195ef7804b6f84fcfa238977aba365b76afa65c3d9bd8f74370a051f2f35a1066da98366d1ae0f70861fa89df30d6ab4d0f859ac3cce427c25ef3b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326840c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f100000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffea421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06b0c829a8d2d3405304fecbea193e6c67f7c3912a6adc7c3737ad3f8a3b750425c1531a7426f03033a3994bc82a10609fc080a055927481d511a61d08b3309de9287ef82a40a2b87bed2605ffbcfaad994340b0a0401e884cd033983f02c4af36b799209f1c6bb4f7673c3a4cd384d7576904bafec0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xd2a59cc9dd3c830b051dc217edd0b42a868fae6b41431a02e1666bda1833b9b1", - "transactionsTrie": "0xa4e536663a2fc69085f7840b69133fadb77d1e84afd3cefd4b76ca6407ea63f5", - "receiptTrie": "0xa28962db15985dce9fc1f5c2c6e1bbc9c7be1f3fb810bb3e8ec0b6c2a227b1f3", + "stateRoot": "0xd43e78e392975e2508273a97b39ee52dfa7d0daa6bef48c460fd310610e53474", + "transactionsTrie": "0xa16b3a4a571e5195ef7804b6f84fcfa238977aba365b76afa65c3d9bd8f74370", + "receiptTrie": "0x51f2f35a1066da98366d1ae0f70861fa89df30d6ab4d0f859ac3cce427c25ef3", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x0326c0", + "gasUsed": "0x032684", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -2958,7 +2958,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x142f4ce5e202bb461e9f0318a8706ec4517fa3b76c0394413431ca6fd6d78e13" + "hash": "0xcbbfcccf71790e4fe962844819ac39ee5aebc6d84d4d37588cc495594babd653" }, "blocknumber": "1", "transactions": [ @@ -2971,11 +2971,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b900000000000000000000000000000000000000000000000000000000000000026a75e4fe63e5e148c853462a680c3e3ccedea34719d28f19bf1b35ae4eea37d6a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca78be986bb46235d7dace424c585d8160a7ffb0be6cf09844d5dc50cd6f14f9d9b4a39cb187d590d5b9fabc41efe31673b", + "data": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f100000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffea421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06b0c829a8d2d3405304fecbea193e6c67f7c3912a6adc7c3737ad3f8a3b750425c1531a7426f03033a3994bc82a10609f", "accessList": [], - "v": "0x01", - "r": "0x70323221eae38ee9a767b892b94d595668db743b35fd6ceb24cb5fcbbb60fd7b", - "s": "0x12f19a53389cc10a14781ef0cf8ebe955259e6fbb0b847169d6616c4e0dd41a0", + "v": "0x00", + "r": "0x55927481d511a61d08b3309de9287ef82a40a2b87bed2605ffbcfaad994340b0", + "s": "0x401e884cd033983f02c4af36b799209f1c6bb4f7673c3a4cd384d7576904bafe", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -2983,7 +2983,7 @@ "withdrawals": [] } ], - "lastblockhash": "0x142f4ce5e202bb461e9f0318a8706ec4517fa3b76c0394413431ca6fd6d78e13", + "lastblockhash": "0xcbbfcccf71790e4fe962844819ac39ee5aebc6d84d4d37588cc495594babd653", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -3028,16 +3028,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffe9f0c0", + "balance": "0xffffffffffffe9f264", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "023-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_b6ec3736f9ff2c62": { + "023-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_9b24f8997145435c": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -3068,19 +3068,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04159354b4217bfcfc25d574fbf48fd1422887e5256ef0bec95b34fa1d2837ceaa098410ef352d1f7a7b0b179afb2cc7edf0936ddb42561f66da818ef87193722c9a0ddac6235f1c3c7cf7be43069c6158087a3c278228d25e5f410defca825999683b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326a80c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363060000000000000000000000000000000000000000000000000000000000000000b09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440ef89d9a593cf16156d32a0998b48fdc0964fc8a63e4b87a6750c6e132089125bfd57105274821bbda7198cfe1b69ee49b4c001a0841bb1cf1945bb7346f1930527ddd4a0550ce9ad842f9b350c8119fdbab00fd2a05394dabb876b51f2d0533b67e28b4e6e3a33638bc01e576025a4f1c833f5af57c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ded63c14301d2a81da551b4c4a311bb038e1f24b5932804eec0a811898b0a45ba07c2dddac5f40b2219f1c94206c102b06692900b886114a3ac5bcc89c5d0f8c43a05d1e41d4bf154602e8b08528262ac05321dbcf9598e7e2a5bcca123f41485f6cb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830325340c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000093efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f146556b9241c6816af6388d1014cd4d7dd21662a6e3d47f96c0257bce642b70e8e375839a880864638669c6a709b414ab8bffcc001a0ca15826ab5ed6a9933fd78b03f789b1657ee2cbcd5c266aa8afbf776db95f402a040323e267039f7d1a2f7d11cf3792a0109521b9414f8026f08ac5edbaf345860c0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x4159354b4217bfcfc25d574fbf48fd1422887e5256ef0bec95b34fa1d2837cea", - "transactionsTrie": "0x98410ef352d1f7a7b0b179afb2cc7edf0936ddb42561f66da818ef87193722c9", - "receiptTrie": "0xddac6235f1c3c7cf7be43069c6158087a3c278228d25e5f410defca825999683", + "stateRoot": "0xded63c14301d2a81da551b4c4a311bb038e1f24b5932804eec0a811898b0a45b", + "transactionsTrie": "0x7c2dddac5f40b2219f1c94206c102b06692900b886114a3ac5bcc89c5d0f8c43", + "receiptTrie": "0x5d1e41d4bf154602e8b08528262ac05321dbcf9598e7e2a5bcca123f41485f6c", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x0326a8", + "gasUsed": "0x032534", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -3090,7 +3090,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xe195d53f91bdca3ed68e842c6cd7489c0b6959e405dcb731d7d6eba17c1c5448" + "hash": "0xecca0c69b89050ec6821285a73e1d60d3c3674ee18d2df33d3c53c437a27e097" }, "blocknumber": "1", "transactions": [ @@ -3103,11 +3103,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363060000000000000000000000000000000000000000000000000000000000000000b09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440ef89d9a593cf16156d32a0998b48fdc0964fc8a63e4b87a6750c6e132089125bfd57105274821bbda7198cfe1b69ee49b4", + "data": "0x01ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000093efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f146556b9241c6816af6388d1014cd4d7dd21662a6e3d47f96c0257bce642b70e8e375839a880864638669c6a709b414ab8bffc", "accessList": [], "v": "0x01", - "r": "0x841bb1cf1945bb7346f1930527ddd4a0550ce9ad842f9b350c8119fdbab00fd2", - "s": "0x5394dabb876b51f2d0533b67e28b4e6e3a33638bc01e576025a4f1c833f5af57", + "r": "0xca15826ab5ed6a9933fd78b03f789b1657ee2cbcd5c266aa8afbf776db95f402", + "s": "0x40323e267039f7d1a2f7d11cf3792a0109521b9414f8026f08ac5edbaf345860", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -3115,7 +3115,7 @@ "withdrawals": [] } ], - "lastblockhash": "0xe195d53f91bdca3ed68e842c6cd7489c0b6959e405dcb731d7d6eba17c1c5448", + "lastblockhash": "0xecca0c69b89050ec6821285a73e1d60d3c3674ee18d2df33d3c53c437a27e097", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -3160,16 +3160,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffe9f168", + "balance": "0xffffffffffffe9fb94", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "024-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_becf2e1641bbd4e6": { + "024-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_9b754afb690c47e1": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -3200,19 +3200,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa005a3cb7e0ea279208609f5fd166e30f7d7e6233826c14aecc43b0fad5062dad1a05db260e1bc4bd3ce628ca8eca95f628b20e83134863db4588dad6af1f87ba591a04edfaeec9aa2d668aa1fe654b5bb5a19ffd6ea9718e245f57c193e6384bb858eb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830325c40c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c05eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c6273eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a075b3519d3798682ae97e033ea62426cac14f35dbb2ac2d3d6c23863a0f8c500ca022d468709c36b066366015decc5579f4592252ec77f876f5ea562fbc1d2e3733c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0092ca77027ac1b9ca4a5cb57621c139371b077dd8335981de8c9db4a005b7fc4a0066d0b363c0bb2276ca921f5f21c99458474c5cf5575847e8e2d346fdb8b5a35a060d05e6d4f087896952e0161c798979dbef6212d3979c5cf31d4538884a22009b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303245c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000273eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a071beb5a23407fea3443dd51aa5a26f71159ba51dee33fe8d498ac86938dca41fa02a04e2fcf01f80c621c1e4747db039792fec223c7d25ecb1e53ec6dc05b435c3c0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x05a3cb7e0ea279208609f5fd166e30f7d7e6233826c14aecc43b0fad5062dad1", - "transactionsTrie": "0x5db260e1bc4bd3ce628ca8eca95f628b20e83134863db4588dad6af1f87ba591", - "receiptTrie": "0x4edfaeec9aa2d668aa1fe654b5bb5a19ffd6ea9718e245f57c193e6384bb858e", + "stateRoot": "0x092ca77027ac1b9ca4a5cb57621c139371b077dd8335981de8c9db4a005b7fc4", + "transactionsTrie": "0x066d0b363c0bb2276ca921f5f21c99458474c5cf5575847e8e2d346fdb8b5a35", + "receiptTrie": "0x60d05e6d4f087896952e0161c798979dbef6212d3979c5cf31d4538884a22009", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x0325c4", + "gasUsed": "0x03245c", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -3222,7 +3222,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x9d9577c280d3f15aabc74cbbf76eea93a2c66f3cbc08f9ce2ee62f4af457cfc1" + "hash": "0x164428cb64d1db206b96e4b17b944bb87a613123d0307305e27961da9a20b40a" }, "blocknumber": "1", "transactions": [ @@ -3235,11 +3235,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c05eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c6273eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000273eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "accessList": [], - "v": "0x01", - "r": "0x75b3519d3798682ae97e033ea62426cac14f35dbb2ac2d3d6c23863a0f8c500c", - "s": "0x22d468709c36b066366015decc5579f4592252ec77f876f5ea562fbc1d2e3733", + "v": "0x00", + "r": "0x71beb5a23407fea3443dd51aa5a26f71159ba51dee33fe8d498ac86938dca41f", + "s": "0x2a04e2fcf01f80c621c1e4747db039792fec223c7d25ecb1e53ec6dc05b435c3", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -3247,7 +3247,7 @@ "withdrawals": [] } ], - "lastblockhash": "0x9d9577c280d3f15aabc74cbbf76eea93a2c66f3cbc08f9ce2ee62f4af457cfc1", + "lastblockhash": "0x164428cb64d1db206b96e4b17b944bb87a613123d0307305e27961da9a20b40a", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -3292,16 +3292,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffe9f7a4", + "balance": "0xffffffffffffea017c", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "025-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_c3d4322ec17fe7cd": { + "025-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_a0be66af9a97ea52": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -3332,19 +3332,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0743fe046e9b8d686844a4f68f0b8af10f37bf2e64d131506c5417e048f5785d6a042814b49a3b2b951f3854a765e6fc5cf5c639083e40c5ffa2202356905f921f9a0490b5c8fc35fec021870f881c330c6034e503b53179152e33e6794d2a819e605b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830320cc0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a01010fd3a61c3d74461450afa223aa148e5eb10993e04e942635e293ceb5fa373a04b3244a006b52d7d9b301b8f6854c428bc129821f52887efff046aa7026afef6c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04a133c11db920fba4882b5f6f8b1a5fca6225d9ccb55e8acabd65c098e21e283a0fceba5b9017f510fbc5e63371919d3b97e09c8e4645d8aac480f54c522d29281a0091757d992eaa78b80aa36f0b2faba95782069d4cbbd8d3fa36ad5c8fee43138b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830323180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e3863700000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0f5a0c88b6ab5779b674f50f35ff6a84e9de6a974a504e57f2831c07964432d3ca00316a20572a66083f1bd4e473ffbfdaff0ae5fdd62491052b411f92be107e260c0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x743fe046e9b8d686844a4f68f0b8af10f37bf2e64d131506c5417e048f5785d6", - "transactionsTrie": "0x42814b49a3b2b951f3854a765e6fc5cf5c639083e40c5ffa2202356905f921f9", - "receiptTrie": "0x490b5c8fc35fec021870f881c330c6034e503b53179152e33e6794d2a819e605", + "stateRoot": "0x4a133c11db920fba4882b5f6f8b1a5fca6225d9ccb55e8acabd65c098e21e283", + "transactionsTrie": "0xfceba5b9017f510fbc5e63371919d3b97e09c8e4645d8aac480f54c522d29281", + "receiptTrie": "0x091757d992eaa78b80aa36f0b2faba95782069d4cbbd8d3fa36ad5c8fee43138", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x0320cc", + "gasUsed": "0x032318", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -3354,7 +3354,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x8d2ccab0973120f15fc7ca4924ba94818236ac335122c7c425b5ea0f2d078d7c" + "hash": "0xfaf98fd3423a87ff451d8df58ace9e7a133a156daf21e246b36a55a4598ee45e" }, "blocknumber": "1", "transactions": [ @@ -3367,11 +3367,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "data": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e3863700000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "accessList": [], - "v": "0x01", - "r": "0x1010fd3a61c3d74461450afa223aa148e5eb10993e04e942635e293ceb5fa373", - "s": "0x4b3244a006b52d7d9b301b8f6854c428bc129821f52887efff046aa7026afef6", + "v": "0x00", + "r": "0xf5a0c88b6ab5779b674f50f35ff6a84e9de6a974a504e57f2831c07964432d3c", + "s": "0x0316a20572a66083f1bd4e473ffbfdaff0ae5fdd62491052b411f92be107e260", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -3379,7 +3379,7 @@ "withdrawals": [] } ], - "lastblockhash": "0x8d2ccab0973120f15fc7ca4924ba94818236ac335122c7c425b5ea0f2d078d7c", + "lastblockhash": "0xfaf98fd3423a87ff451d8df58ace9e7a133a156daf21e246b36a55a4598ee45e", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -3424,16 +3424,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffea1a6c", + "balance": "0xffffffffffffea0a58", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "026-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_c5e1490d672d026d": { + "026-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_af669445747d2585": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -3464,19 +3464,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b5fb155286d38e5d9a3a01251b3c3c6207217d84aa806abdeefaf029843896b0a09c123e4f43d535e83fb5524eb9f8f9b15cdccbd78d073f4b9dbaea8e64b8738ca0ee652a06815a432d5f2b3e9ecff47f1da5ea293bca394f6d08fc63db91569906b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830328280c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d3630624d25032e67a7e6a4910df5834b8fe70e6bcfeeac0352434196bdf4b2485d5a1978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d1656875654806942307f266e636553e94006d11423f2688945ff3bdf515859eba1005c1a7708d620a94d91a1c0c285f9584e75ec2f82ac080a0bad740f39e4a37f0d97369c491a8b400ba04dc6f59b470a602209c27435c9f5ba0504392910ea536b47ac7a32c2492ef3f617c6c5d4a8a10656742a664bdb05529c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00688fee8a867e36eb36eff84e1de8c36541a78c7671144321f8ae4ca01820c34a0dc767e0a8a916f1855dffa8a6269ad01d5face5490cae4657ff5b5864ee5f1dca092785c65bcd1aeb3bb581e4b3ae8387972fb5b894807002c7748608f81dbcde4b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830328340c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363066c28d6edfea2f5e1638cb1a8be8197549d52e133fa9dae87e52abb45f7b192ddb49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193a8a46b67dcba4e3aa66f9952be69e1ecbc24e21d42b1df2bfe1c8e28431c6221a3f1d09808042f5624e857710cb24fb69c080a0d83602a0880d4a65094b22792227cf6848651300e7ef63463afb4cb55fb85552a016222311e5b80b643b9b0a13e8acac14a734a535116b7fcd2ec7b473e45c5c2dc0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb5fb155286d38e5d9a3a01251b3c3c6207217d84aa806abdeefaf029843896b0", - "transactionsTrie": "0x9c123e4f43d535e83fb5524eb9f8f9b15cdccbd78d073f4b9dbaea8e64b8738c", - "receiptTrie": "0xee652a06815a432d5f2b3e9ecff47f1da5ea293bca394f6d08fc63db91569906", + "stateRoot": "0x0688fee8a867e36eb36eff84e1de8c36541a78c7671144321f8ae4ca01820c34", + "transactionsTrie": "0xdc767e0a8a916f1855dffa8a6269ad01d5face5490cae4657ff5b5864ee5f1dc", + "receiptTrie": "0x92785c65bcd1aeb3bb581e4b3ae8387972fb5b894807002c7748608f81dbcde4", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x032828", + "gasUsed": "0x032834", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -3486,7 +3486,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x3cc5748cf9f3faa40de5a0daef5a9c17d2870658a7081a982252da4d235944c6" + "hash": "0x9c08c8139a3a49eef3e9bd0217bd08e36a3583c8b980cc3f9b151046036cf001" }, "blocknumber": "1", "transactions": [ @@ -3499,11 +3499,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d3630624d25032e67a7e6a4910df5834b8fe70e6bcfeeac0352434196bdf4b2485d5a1978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d1656875654806942307f266e636553e94006d11423f2688945ff3bdf515859eba1005c1a7708d620a94d91a1c0c285f9584e75ec2f82a", + "data": "0x01228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363066c28d6edfea2f5e1638cb1a8be8197549d52e133fa9dae87e52abb45f7b192ddb49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193a8a46b67dcba4e3aa66f9952be69e1ecbc24e21d42b1df2bfe1c8e28431c6221a3f1d09808042f5624e857710cb24fb69", "accessList": [], "v": "0x00", - "r": "0xbad740f39e4a37f0d97369c491a8b400ba04dc6f59b470a602209c27435c9f5b", - "s": "0x504392910ea536b47ac7a32c2492ef3f617c6c5d4a8a10656742a664bdb05529", + "r": "0xd83602a0880d4a65094b22792227cf6848651300e7ef63463afb4cb55fb85552", + "s": "0x16222311e5b80b643b9b0a13e8acac14a734a535116b7fcd2ec7b473e45c5c2d", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -3511,7 +3511,7 @@ "withdrawals": [] } ], - "lastblockhash": "0x3cc5748cf9f3faa40de5a0daef5a9c17d2870658a7081a982252da4d235944c6", + "lastblockhash": "0x9c08c8139a3a49eef3e9bd0217bd08e36a3583c8b980cc3f9b151046036cf001", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -3556,16 +3556,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffe9e6e8", + "balance": "0xffffffffffffe9e694", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "027-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_cae5d3491190b777": { + "027-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_af8b75f664ed7d43": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -3596,19 +3596,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa045697ab25faa4cb90845238465e3d80ce516f41c828bbea47ed79a44fdbd5c98a033e63d9f23cea6a5bf9ad371866475e8cfff580aef91876814b9f065c55510d4a0578146f9ff3b4decc7636b646d66f38a6068f41eb993f3d9f33de3e3f9fb66fdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303281c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b95eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c622c9ae4f1d6d08558d7027df9cc6b248c21290075d2c0df8a4084d02090b3fa14a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca7b981665ea5575dbe48f8cea22d4e3effc42cb66f967c7ca174c21f06a4a55740f61d8cde1bc6339c3f036e8d5176516fc080a0dcf9446bfc8d96cc748dcab47c9298ca84ae9e6cc617d30f72f6af8b218b53a1a04aad313d253a1a1ef4f308217f4caafc99cfaf98eee8a1ca07aa04fe0ad1ff53c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04159354b4217bfcfc25d574fbf48fd1422887e5256ef0bec95b34fa1d2837ceaa0a9eeb1b04f9338668d4d6042930fb62951446d5fe7b67796d7f1d960b9eec3e4a0ddac6235f1c3c7cf7be43069c6158087a3c278228d25e5f410defca825999683b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326a80c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef000000000000000000000000000000000000000000000000000000000000000264d3b6baf69395bde2abd1d43f99be66bc64581234fd363e2ae3a0d419cfc3fc93efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f146556893acd46552b81cc9e5ff6ca03dad873588f2c61031781367cfea2a2be4ef3090035623338711b3cf7eff4b4524df742c001a06ebc2dcdecb28723dca8f5b6aeeedd1cefe9e86572dca08fcc72bcd9f35e05dba0592f09e687f9c8648ae29638a5a3b5de87f56221124789cc7d13db24729aa91ac0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x45697ab25faa4cb90845238465e3d80ce516f41c828bbea47ed79a44fdbd5c98", - "transactionsTrie": "0x33e63d9f23cea6a5bf9ad371866475e8cfff580aef91876814b9f065c55510d4", - "receiptTrie": "0x578146f9ff3b4decc7636b646d66f38a6068f41eb993f3d9f33de3e3f9fb66fd", + "stateRoot": "0x4159354b4217bfcfc25d574fbf48fd1422887e5256ef0bec95b34fa1d2837cea", + "transactionsTrie": "0xa9eeb1b04f9338668d4d6042930fb62951446d5fe7b67796d7f1d960b9eec3e4", + "receiptTrie": "0xddac6235f1c3c7cf7be43069c6158087a3c278228d25e5f410defca825999683", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x03281c", + "gasUsed": "0x0326a8", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -3618,7 +3618,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x840d59f37fffd375dbd115ab62aa7f9305b8dc375df00baab93e4b2c79ecba76" + "hash": "0xd8f6b8b21e5311fcc1c99b52963084ffa5ecc92fac53a2b083e4f3b5de63ea14" }, "blocknumber": "1", "transactions": [ @@ -3631,11 +3631,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b95eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c622c9ae4f1d6d08558d7027df9cc6b248c21290075d2c0df8a4084d02090b3fa14a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca7b981665ea5575dbe48f8cea22d4e3effc42cb66f967c7ca174c21f06a4a55740f61d8cde1bc6339c3f036e8d5176516f", + "data": "0x01ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef000000000000000000000000000000000000000000000000000000000000000264d3b6baf69395bde2abd1d43f99be66bc64581234fd363e2ae3a0d419cfc3fc93efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f146556893acd46552b81cc9e5ff6ca03dad873588f2c61031781367cfea2a2be4ef3090035623338711b3cf7eff4b4524df742", "accessList": [], - "v": "0x00", - "r": "0xdcf9446bfc8d96cc748dcab47c9298ca84ae9e6cc617d30f72f6af8b218b53a1", - "s": "0x4aad313d253a1a1ef4f308217f4caafc99cfaf98eee8a1ca07aa04fe0ad1ff53", + "v": "0x01", + "r": "0x6ebc2dcdecb28723dca8f5b6aeeedd1cefe9e86572dca08fcc72bcd9f35e05db", + "s": "0x592f09e687f9c8648ae29638a5a3b5de87f56221124789cc7d13db24729aa91a", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -3643,7 +3643,7 @@ "withdrawals": [] } ], - "lastblockhash": "0x840d59f37fffd375dbd115ab62aa7f9305b8dc375df00baab93e4b2c79ecba76", + "lastblockhash": "0xd8f6b8b21e5311fcc1c99b52963084ffa5ecc92fac53a2b083e4f3b5de63ea14", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -3688,16 +3688,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffe9e73c", + "balance": "0xffffffffffffe9f168", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "028-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_d0992bc0387790a4": { + "028-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_b6cb6698327d9835": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -3728,19 +3728,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa045697ab25faa4cb90845238465e3d80ce516f41c828bbea47ed79a44fdbd5c98a02d3c00b7b6f30782dc5b38cdb0c274d6ab6146b32e6440c13ed5c5ac2909bc9ba0578146f9ff3b4decc7636b646d66f38a6068f41eb993f3d9f33de3e3f9fb66fdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303281c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c624882cf0609af8c7cd4c256e63a35838c95a9ebbf6122540ab344b42fd66d32e1978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d1656875654806a731aa7fbb00bc5c46074279f0123976c2a0c05ef3987bdc16fa64fbab1621dec82c66b4bfb117456068137391617e59c001a0ca0197799718f0d7420e5f7927f22003acb6e4229de8a8f6da2580fee49cb11da056676b40175009a8c069ea362e2f1f18fe20276851bd784f0a5d7cf71d3c5f04c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d2a59cc9dd3c830b051dc217edd0b42a868fae6b41431a02e1666bda1833b9b1a03d43f624f48c1349027e94031005356ece1e40b1459988b4fe41b2fd042af890a0a28962db15985dce9fc1f5c2c6e1bbc9c7be1f3fb810bb3e8ec0b6c2a227b1f3b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326c00c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e00000000000000000000000000000000000000000000000000000000000000026a75e4fe63e5e148c853462a680c3e3ccedea34719d28f19bf1b35ae4eea37d6b49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193aa38758fca85407078c0a7e5fd6d38b34340c809baa0e1fed9deaabb11aa503062acbbe23fcbe620a21b40a83bfa71b89c080a0a0abeba9143e17adc9cd5a12d68000eba14d9d683f89853f4fcd0e116f0ee17aa02fb0bd123da794416725d8169e29b1e453a2c6a541b3c67accd32da1cc7ce4b7c0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x45697ab25faa4cb90845238465e3d80ce516f41c828bbea47ed79a44fdbd5c98", - "transactionsTrie": "0x2d3c00b7b6f30782dc5b38cdb0c274d6ab6146b32e6440c13ed5c5ac2909bc9b", - "receiptTrie": "0x578146f9ff3b4decc7636b646d66f38a6068f41eb993f3d9f33de3e3f9fb66fd", + "stateRoot": "0xd2a59cc9dd3c830b051dc217edd0b42a868fae6b41431a02e1666bda1833b9b1", + "transactionsTrie": "0x3d43f624f48c1349027e94031005356ece1e40b1459988b4fe41b2fd042af890", + "receiptTrie": "0xa28962db15985dce9fc1f5c2c6e1bbc9c7be1f3fb810bb3e8ec0b6c2a227b1f3", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x03281c", + "gasUsed": "0x0326c0", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -3750,7 +3750,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5a614c3058a95cb46146384f9d3e7e236778017db9f6fc6e3bd9984ce7a40b5d" + "hash": "0x5cf5be83f19e2c120fa75afe03c8e6dc5c4fe0c318d22d27d0c2d2fd254dee68" }, "blocknumber": "1", "transactions": [ @@ -3763,11 +3763,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c624882cf0609af8c7cd4c256e63a35838c95a9ebbf6122540ab344b42fd66d32e1978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d1656875654806a731aa7fbb00bc5c46074279f0123976c2a0c05ef3987bdc16fa64fbab1621dec82c66b4bfb117456068137391617e59", + "data": "0x01228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e00000000000000000000000000000000000000000000000000000000000000026a75e4fe63e5e148c853462a680c3e3ccedea34719d28f19bf1b35ae4eea37d6b49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193aa38758fca85407078c0a7e5fd6d38b34340c809baa0e1fed9deaabb11aa503062acbbe23fcbe620a21b40a83bfa71b89", "accessList": [], - "v": "0x01", - "r": "0xca0197799718f0d7420e5f7927f22003acb6e4229de8a8f6da2580fee49cb11d", - "s": "0x56676b40175009a8c069ea362e2f1f18fe20276851bd784f0a5d7cf71d3c5f04", + "v": "0x00", + "r": "0xa0abeba9143e17adc9cd5a12d68000eba14d9d683f89853f4fcd0e116f0ee17a", + "s": "0x2fb0bd123da794416725d8169e29b1e453a2c6a541b3c67accd32da1cc7ce4b7", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -3775,7 +3775,7 @@ "withdrawals": [] } ], - "lastblockhash": "0x5a614c3058a95cb46146384f9d3e7e236778017db9f6fc6e3bd9984ce7a40b5d", + "lastblockhash": "0x5cf5be83f19e2c120fa75afe03c8e6dc5c4fe0c318d22d27d0c2d2fd254dee68", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -3820,16 +3820,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffe9e73c", + "balance": "0xffffffffffffe9f0c0", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "029-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_d736268229bd87ec": { + "029-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_b6ec3736f9ff2c62": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -3860,19 +3860,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa045697ab25faa4cb90845238465e3d80ce516f41c828bbea47ed79a44fdbd5c98a0f5f88082c2e649ed962fb2a8df6e5f57d1103e11cc5aa1afad6a9982a2ac6019a0578146f9ff3b4decc7636b646d66f38a6068f41eb993f3d9f33de3e3f9fb66fdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303281c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc55eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c625fd58150b731b4facfcdd89c0e393ff842f5f2071303eff99b51e103161cd233b09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440ef884c7d4772baef968a6a407ac02cc1a813d67003e8f039c4d66f7757be0e5bd484e561550acf58b8a3199b2690e9809ac001a0fb8ea80064406e3deb07654550868fd9586f9fde14f5ba41df3a9a8f43cd71c4a065abe2c0d3921a18f2357bd507e4ccc1a17125b949339c3604bdfa12b4dec565c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04159354b4217bfcfc25d574fbf48fd1422887e5256ef0bec95b34fa1d2837ceaa0e78af4c18224a6188bf25628dd7a51a47f24f59ca2305d9acb071f2055585ec8a0ddac6235f1c3c7cf7be43069c6158087a3c278228d25e5f410defca825999683b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326a80c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306000000000000000000000000000000000000000000000000000000000000000093efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f146556a256a681861974cdf6b116467044aa75c85b01076423a92c3335b93d10bf2fcb99b943a53adc1ab8feb6b475c4688948c080a06bf05e3e75e53f4286db33f2421a91d33a3ce5fb0a171ec361085576ad955c16a053384e9cd480afc3031854a546ef73a97f743e1779a457b35501f2e6e2b990a4c0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x45697ab25faa4cb90845238465e3d80ce516f41c828bbea47ed79a44fdbd5c98", - "transactionsTrie": "0xf5f88082c2e649ed962fb2a8df6e5f57d1103e11cc5aa1afad6a9982a2ac6019", - "receiptTrie": "0x578146f9ff3b4decc7636b646d66f38a6068f41eb993f3d9f33de3e3f9fb66fd", + "stateRoot": "0x4159354b4217bfcfc25d574fbf48fd1422887e5256ef0bec95b34fa1d2837cea", + "transactionsTrie": "0xe78af4c18224a6188bf25628dd7a51a47f24f59ca2305d9acb071f2055585ec8", + "receiptTrie": "0xddac6235f1c3c7cf7be43069c6158087a3c278228d25e5f410defca825999683", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x03281c", + "gasUsed": "0x0326a8", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -3882,7 +3882,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x42e7a7c09ffa35511a486af2a572c858fd7cc2182975a72180fb9d3bb4197b8d" + "hash": "0xa88ee0dfc69890e287c3f3d7f3f7e91a25b712ad8c547b9dff238450a90a57ab" }, "blocknumber": "1", "transactions": [ @@ -3895,11 +3895,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc55eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c625fd58150b731b4facfcdd89c0e393ff842f5f2071303eff99b51e103161cd233b09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440ef884c7d4772baef968a6a407ac02cc1a813d67003e8f039c4d66f7757be0e5bd484e561550acf58b8a3199b2690e9809a", + "data": "0x01ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306000000000000000000000000000000000000000000000000000000000000000093efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f146556a256a681861974cdf6b116467044aa75c85b01076423a92c3335b93d10bf2fcb99b943a53adc1ab8feb6b475c4688948", "accessList": [], - "v": "0x01", - "r": "0xfb8ea80064406e3deb07654550868fd9586f9fde14f5ba41df3a9a8f43cd71c4", - "s": "0x65abe2c0d3921a18f2357bd507e4ccc1a17125b949339c3604bdfa12b4dec565", + "v": "0x00", + "r": "0x6bf05e3e75e53f4286db33f2421a91d33a3ce5fb0a171ec361085576ad955c16", + "s": "0x53384e9cd480afc3031854a546ef73a97f743e1779a457b35501f2e6e2b990a4", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -3907,7 +3907,7 @@ "withdrawals": [] } ], - "lastblockhash": "0x42e7a7c09ffa35511a486af2a572c858fd7cc2182975a72180fb9d3bb4197b8d", + "lastblockhash": "0xa88ee0dfc69890e287c3f3d7f3f7e91a25b712ad8c547b9dff238450a90a57ab", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -3952,16 +3952,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffe9e73c", + "balance": "0xffffffffffffe9f168", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "030-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_e68d7111a2364a49": { + "030-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_becf2e1641bbd4e6": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -3992,19 +3992,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d2a59cc9dd3c830b051dc217edd0b42a868fae6b41431a02e1666bda1833b9b1a0db4428cdc02ad1603afaf1737d369177c648f4eb6523b163039b548fc46c8322a0a28962db15985dce9fc1f5c2c6e1bbc9c7be1f3fb810bb3e8ec0b6c2a227b1f3b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326c00c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb0000000000000000000000000000000000000000000000000000000000000002549345dd3612e36fab0ab7baffe3faa5b820d56b71348c89ecaf63f7c4f85370978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d16568756548068f391ceb1bd34fe93e995f04fc78f8e715776ce6385936ab91a9ca88f3942cc37bd471c0180ed0ab6fc4f5e2d6f99dacc001a0cb3e503622f7a81e1d75967a93e307bb40a6ff987ac69c37147133f97134f8a6a02a2b35b7767af0323557d318c773e4719ded11e675b8793ff96fc83b9e738756c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa005a3cb7e0ea279208609f5fd166e30f7d7e6233826c14aecc43b0fad5062dad1a05db260e1bc4bd3ce628ca8eca95f628b20e83134863db4588dad6af1f87ba591a04edfaeec9aa2d668aa1fe654b5bb5a19ffd6ea9718e245f57c193e6384bb858eb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830325c40c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c05eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c6273eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a075b3519d3798682ae97e033ea62426cac14f35dbb2ac2d3d6c23863a0f8c500ca022d468709c36b066366015decc5579f4592252ec77f876f5ea562fbc1d2e3733c0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xd2a59cc9dd3c830b051dc217edd0b42a868fae6b41431a02e1666bda1833b9b1", - "transactionsTrie": "0xdb4428cdc02ad1603afaf1737d369177c648f4eb6523b163039b548fc46c8322", - "receiptTrie": "0xa28962db15985dce9fc1f5c2c6e1bbc9c7be1f3fb810bb3e8ec0b6c2a227b1f3", + "stateRoot": "0x05a3cb7e0ea279208609f5fd166e30f7d7e6233826c14aecc43b0fad5062dad1", + "transactionsTrie": "0x5db260e1bc4bd3ce628ca8eca95f628b20e83134863db4588dad6af1f87ba591", + "receiptTrie": "0x4edfaeec9aa2d668aa1fe654b5bb5a19ffd6ea9718e245f57c193e6384bb858e", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x0326c0", + "gasUsed": "0x0325c4", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -4014,7 +4014,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xe12d11e52d07d2f9ba6586a17bae384b2f2770e7930172f0fec1f6c2de5a7709" + "hash": "0x9d9577c280d3f15aabc74cbbf76eea93a2c66f3cbc08f9ce2ee62f4af457cfc1" }, "blocknumber": "1", "transactions": [ @@ -4027,11 +4027,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb0000000000000000000000000000000000000000000000000000000000000002549345dd3612e36fab0ab7baffe3faa5b820d56b71348c89ecaf63f7c4f85370978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d16568756548068f391ceb1bd34fe93e995f04fc78f8e715776ce6385936ab91a9ca88f3942cc37bd471c0180ed0ab6fc4f5e2d6f99dac", + "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c05eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c6273eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "accessList": [], "v": "0x01", - "r": "0xcb3e503622f7a81e1d75967a93e307bb40a6ff987ac69c37147133f97134f8a6", - "s": "0x2a2b35b7767af0323557d318c773e4719ded11e675b8793ff96fc83b9e738756", + "r": "0x75b3519d3798682ae97e033ea62426cac14f35dbb2ac2d3d6c23863a0f8c500c", + "s": "0x22d468709c36b066366015decc5579f4592252ec77f876f5ea562fbc1d2e3733", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -4039,7 +4039,7 @@ "withdrawals": [] } ], - "lastblockhash": "0xe12d11e52d07d2f9ba6586a17bae384b2f2770e7930172f0fec1f6c2de5a7709", + "lastblockhash": "0x9d9577c280d3f15aabc74cbbf76eea93a2c66f3cbc08f9ce2ee62f4af457cfc1", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -4084,16 +4084,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffe9f0c0", + "balance": "0xffffffffffffe9f7a4", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "031-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_ed6b180ec759bcf6": { + "031-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_c3d4322ec17fe7cd": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -4124,19 +4124,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b5fb155286d38e5d9a3a01251b3c3c6207217d84aa806abdeefaf029843896b0a0313c9b788fcaa0e7cf37cef629eac02320dfd2ed6811ab40f39865f612c33764a0ee652a06815a432d5f2b3e9ecff47f1da5ea293bca394f6d08fc63db91569906b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830328280c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c625ee1e9a4a06a02ca6ea14b0ca73415a8ba0fba888f18dde56df499b480d4b9e0991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c9940769c68153fe476f97be8841dd16ad8c8f52a8bd2e8a421bb8eccc3a77e705e3702fdf17f1bf27333d94e2d88ee85dc080a0c9ada62679e5ba02a861083b6325cfaf8bd8ec5405a94a4aad6eb0a5d72da710a01518ef83949babdbe0151bdc2937489de21b92e4f6233ad06714ecfd8d322b62c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0743fe046e9b8d686844a4f68f0b8af10f37bf2e64d131506c5417e048f5785d6a042814b49a3b2b951f3854a765e6fc5cf5c639083e40c5ffa2202356905f921f9a0490b5c8fc35fec021870f881c330c6034e503b53179152e33e6794d2a819e605b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830320cc0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a01010fd3a61c3d74461450afa223aa148e5eb10993e04e942635e293ceb5fa373a04b3244a006b52d7d9b301b8f6854c428bc129821f52887efff046aa7026afef6c0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb5fb155286d38e5d9a3a01251b3c3c6207217d84aa806abdeefaf029843896b0", - "transactionsTrie": "0x313c9b788fcaa0e7cf37cef629eac02320dfd2ed6811ab40f39865f612c33764", - "receiptTrie": "0xee652a06815a432d5f2b3e9ecff47f1da5ea293bca394f6d08fc63db91569906", + "stateRoot": "0x743fe046e9b8d686844a4f68f0b8af10f37bf2e64d131506c5417e048f5785d6", + "transactionsTrie": "0x42814b49a3b2b951f3854a765e6fc5cf5c639083e40c5ffa2202356905f921f9", + "receiptTrie": "0x490b5c8fc35fec021870f881c330c6034e503b53179152e33e6794d2a819e605", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x032828", + "gasUsed": "0x0320cc", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -4146,7 +4146,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xea8c8d5109f456633c924804348a52ba2f739a603b73c333c36299f86a8fc795" + "hash": "0x8d2ccab0973120f15fc7ca4924ba94818236ac335122c7c425b5ea0f2d078d7c" }, "blocknumber": "1", "transactions": [ @@ -4159,11 +4159,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c625ee1e9a4a06a02ca6ea14b0ca73415a8ba0fba888f18dde56df499b480d4b9e0991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c9940769c68153fe476f97be8841dd16ad8c8f52a8bd2e8a421bb8eccc3a77e705e3702fdf17f1bf27333d94e2d88ee85d", + "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "accessList": [], - "v": "0x00", - "r": "0xc9ada62679e5ba02a861083b6325cfaf8bd8ec5405a94a4aad6eb0a5d72da710", - "s": "0x1518ef83949babdbe0151bdc2937489de21b92e4f6233ad06714ecfd8d322b62", + "v": "0x01", + "r": "0x1010fd3a61c3d74461450afa223aa148e5eb10993e04e942635e293ceb5fa373", + "s": "0x4b3244a006b52d7d9b301b8f6854c428bc129821f52887efff046aa7026afef6", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -4171,7 +4171,7 @@ "withdrawals": [] } ], - "lastblockhash": "0xea8c8d5109f456633c924804348a52ba2f739a603b73c333c36299f86a8fc795", + "lastblockhash": "0x8d2ccab0973120f15fc7ca4924ba94818236ac335122c7c425b5ea0f2d078d7c", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -4216,16 +4216,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffe9e6e8", + "balance": "0xffffffffffffea1a6c", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "032-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_f0ed3dc11cdeb130": { + "032-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_c5e1490d672d026d": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -4256,19 +4256,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04159354b4217bfcfc25d574fbf48fd1422887e5256ef0bec95b34fa1d2837ceaa084c23b2b6821c3d164304f26c2867332b319a74a28b4a4f958584c8572e38e40a0ddac6235f1c3c7cf7be43069c6158087a3c278228d25e5f410defca825999683b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326a80c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b900000000000000000000000000000000000000000000000000000000000000001ed7d14d1b3fb1a1890d67b81715531553ad798df2009b4311d9fe2bea6cb964a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca7a4b831fd8adfa8bffcbfa0f486f40cdb65ada7dc7b26e6c745c0369b3a59c338df67edebc3fd7c14ff374be3f1f66735c001a08ecaa57e461f3841e384279290526c94065d243808552b82a0eeba07dec8b40ea009d3d3bc57d99b33e97a2957a8e227415a52ec03a95b0bd23ee59f6a3340fb6fc0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00688fee8a867e36eb36eff84e1de8c36541a78c7671144321f8ae4ca01820c34a057f28c6df7f44e82f077d2938a5e1cc47e0792a402342a6ba6a098b3d8b8d341a092785c65bcd1aeb3bb581e4b3ae8387972fb5b894807002c7748608f81dbcde4b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830328340c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d3630624d25032e67a7e6a4910df5834b8fe70e6bcfeeac0352434196bdf4b2485d5a18f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7873033e038326e87ed3e1276fd140253fa08e9fc25fb2d9a98527fc22a2c9612fbeafdad446cbc7bcdbdcd780af2c16ac001a0f37cf93c89b3829e2986e16f053fea921478311eb3e6569a76915be6c21e1159a048df2f8978a59ccaee1758db430b78c3e8d5d069a59470cce9e442de0eb840fac0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x4159354b4217bfcfc25d574fbf48fd1422887e5256ef0bec95b34fa1d2837cea", - "transactionsTrie": "0x84c23b2b6821c3d164304f26c2867332b319a74a28b4a4f958584c8572e38e40", - "receiptTrie": "0xddac6235f1c3c7cf7be43069c6158087a3c278228d25e5f410defca825999683", + "stateRoot": "0x0688fee8a867e36eb36eff84e1de8c36541a78c7671144321f8ae4ca01820c34", + "transactionsTrie": "0x57f28c6df7f44e82f077d2938a5e1cc47e0792a402342a6ba6a098b3d8b8d341", + "receiptTrie": "0x92785c65bcd1aeb3bb581e4b3ae8387972fb5b894807002c7748608f81dbcde4", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x0326a8", + "gasUsed": "0x032834", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -4278,7 +4278,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xc8eef4cd7a7aefdb602d9c0db08666bad7ed0890ad988a04189db0bf58688a79" + "hash": "0xd5bb990b05121d0fe10307d8ec8f5cac95c3b13353f6e542d892143722cc2cb8" }, "blocknumber": "1", "transactions": [ @@ -4291,11 +4291,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b900000000000000000000000000000000000000000000000000000000000000001ed7d14d1b3fb1a1890d67b81715531553ad798df2009b4311d9fe2bea6cb964a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca7a4b831fd8adfa8bffcbfa0f486f40cdb65ada7dc7b26e6c745c0369b3a59c338df67edebc3fd7c14ff374be3f1f66735", + "data": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d3630624d25032e67a7e6a4910df5834b8fe70e6bcfeeac0352434196bdf4b2485d5a18f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7873033e038326e87ed3e1276fd140253fa08e9fc25fb2d9a98527fc22a2c9612fbeafdad446cbc7bcdbdcd780af2c16a", "accessList": [], "v": "0x01", - "r": "0x8ecaa57e461f3841e384279290526c94065d243808552b82a0eeba07dec8b40e", - "s": "0x09d3d3bc57d99b33e97a2957a8e227415a52ec03a95b0bd23ee59f6a3340fb6f", + "r": "0xf37cf93c89b3829e2986e16f053fea921478311eb3e6569a76915be6c21e1159", + "s": "0x48df2f8978a59ccaee1758db430b78c3e8d5d069a59470cce9e442de0eb840fa", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -4303,7 +4303,7 @@ "withdrawals": [] } ], - "lastblockhash": "0xc8eef4cd7a7aefdb602d9c0db08666bad7ed0890ad988a04189db0bf58688a79", + "lastblockhash": "0xd5bb990b05121d0fe10307d8ec8f5cac95c3b13353f6e542d892143722cc2cb8", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -4348,16 +4348,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffe9f168", + "balance": "0xffffffffffffe9e694", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "033-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_f47eb9fc139f6bfd": { + "033-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_cae5d3491190b777": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -4388,19 +4388,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d2a59cc9dd3c830b051dc217edd0b42a868fae6b41431a02e1666bda1833b9b1a033265160be7234cbac21eff8eef3385c85a88078521b560593348fdaf8c684eda0a28962db15985dce9fc1f5c2c6e1bbc9c7be1f3fb810bb3e8ec0b6c2a227b1f3b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326c00c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb000000000000000000000000000000000000000000000000000000000000000160f840641ec0d0c0d2b77b2d5a393b329442721fad05ab78c7b98f2aa3c20ec9978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d165687565480686031313e4108b347f185a1247c062be741e37376474c23812ba260a13436065507d429c9ea7a205b6eb069e49a70641c001a027e8547ab96a718e5754936ce9ec358b1ccca6de57cb4f370c58b209fb821ffba020c42598d87bd16493b2da2acd9ab845993c435a4850567c032ef065b17ed52ac0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa045697ab25faa4cb90845238465e3d80ce516f41c828bbea47ed79a44fdbd5c98a0d38fd566039239bd104f88943f3bada9cfff76e4d3a5d406be66978d405c1002a0578146f9ff3b4decc7636b646d66f38a6068f41eb993f3d9f33de3e3f9fb66fdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303281c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c622c9ae4f1d6d08558d7027df9cc6b248c21290075d2c0df8a4084d02090b3fa14b49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193ab059c60125debbbf29d041bac20fd853951b64b5f31bfe2fa825e18ff49a259953e734b3d57119ae66f7bd79de3027f6c001a03efcc8ddc2baca10773b20c3ebf8690d1c5e6e4225db402b48c9d1e139db59e7a046ce90989394e8385be02ffaff09f729bbff0262000a5d074b2e37f838bce594c0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xd2a59cc9dd3c830b051dc217edd0b42a868fae6b41431a02e1666bda1833b9b1", - "transactionsTrie": "0x33265160be7234cbac21eff8eef3385c85a88078521b560593348fdaf8c684ed", - "receiptTrie": "0xa28962db15985dce9fc1f5c2c6e1bbc9c7be1f3fb810bb3e8ec0b6c2a227b1f3", + "stateRoot": "0x45697ab25faa4cb90845238465e3d80ce516f41c828bbea47ed79a44fdbd5c98", + "transactionsTrie": "0xd38fd566039239bd104f88943f3bada9cfff76e4d3a5d406be66978d405c1002", + "receiptTrie": "0x578146f9ff3b4decc7636b646d66f38a6068f41eb993f3d9f33de3e3f9fb66fd", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x0326c0", + "gasUsed": "0x03281c", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -4410,7 +4410,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x244e390652cbf4e8fad021b99560d7e7ea259985826a8ba6e8327752500ebee8" + "hash": "0x4bf94ef7add0777b5aadd0f5207d34dd252da44b3820dba57de924be58d4df39" }, "blocknumber": "1", "transactions": [ @@ -4423,11 +4423,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb000000000000000000000000000000000000000000000000000000000000000160f840641ec0d0c0d2b77b2d5a393b329442721fad05ab78c7b98f2aa3c20ec9978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d165687565480686031313e4108b347f185a1247c062be741e37376474c23812ba260a13436065507d429c9ea7a205b6eb069e49a70641", + "data": "0x01228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c622c9ae4f1d6d08558d7027df9cc6b248c21290075d2c0df8a4084d02090b3fa14b49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193ab059c60125debbbf29d041bac20fd853951b64b5f31bfe2fa825e18ff49a259953e734b3d57119ae66f7bd79de3027f6", "accessList": [], "v": "0x01", - "r": "0x27e8547ab96a718e5754936ce9ec358b1ccca6de57cb4f370c58b209fb821ffb", - "s": "0x20c42598d87bd16493b2da2acd9ab845993c435a4850567c032ef065b17ed52a", + "r": "0x3efcc8ddc2baca10773b20c3ebf8690d1c5e6e4225db402b48c9d1e139db59e7", + "s": "0x46ce90989394e8385be02ffaff09f729bbff0262000a5d074b2e37f838bce594", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -4435,7 +4435,7 @@ "withdrawals": [] } ], - "lastblockhash": "0x244e390652cbf4e8fad021b99560d7e7ea259985826a8ba6e8327752500ebee8", + "lastblockhash": "0x4bf94ef7add0777b5aadd0f5207d34dd252da44b3820dba57de924be58d4df39", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -4480,16 +4480,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffe9f0c0", + "balance": "0xffffffffffffe9e73c", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "034-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_f7f44e1e864aa967": { + "034-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_d0992bc0387790a4": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -4520,19 +4520,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09d5a65cc5fbc0b6888f1ca061efcdc9dbd670aa7f06ca8ef23623acb629bd5d1a04736d1f86eeb8422f7d8102498daba055b9a0d9c4cdaff334a25a2505e1e8851a0f2770ea2a80642c8e6b1a1748dfaf23bd1caeb8b204723206ab66564d463d030b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326b40c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb000000000000000000000000000000000000000000000000000000000000000061157104410181bdc6eac224aa9436ac268bdcfeecb6badf71d228adda820af3978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d1656875654806807dce8223a17fd2702eb75a13333f5d3128639df8fc09881a68d464d5765a1a0d2f4628ea573eddb3d6cf4846a0b4ecc080a004bff879689a82b7b12070c7996b2d8710ff509d3c9396fb8c4b865f01f86f81a02fb711a50468f01f5def161f5daa40bf1c62bda3c93388178655d4a4dccd98cec0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b5fb155286d38e5d9a3a01251b3c3c6207217d84aa806abdeefaf029843896b0a0fa5cbef006f8526c97aea2df1f6d7da6968f04db55c9121be3cd1a90b4401309a0ee652a06815a432d5f2b3e9ecff47f1da5ea293bca394f6d08fc63db91569906b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830328280c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c624882cf0609af8c7cd4c256e63a35838c95a9ebbf6122540ab344b42fd66d32e18f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7987ea6df69bbe97c23e0dd948cf2d4490824ba7fea5af812721b2393354b0810a9dba2c231ea7ae30f26c412c7ea6e3ac001a00373cb4a98e39283abf022af09090498258b499a792ba82320d7aa6daf8ed3cfa06be1234fe690f65f4490f56675eaa086bc965e52fdc377778081d7343a2ef98dc0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9d5a65cc5fbc0b6888f1ca061efcdc9dbd670aa7f06ca8ef23623acb629bd5d1", - "transactionsTrie": "0x4736d1f86eeb8422f7d8102498daba055b9a0d9c4cdaff334a25a2505e1e8851", - "receiptTrie": "0xf2770ea2a80642c8e6b1a1748dfaf23bd1caeb8b204723206ab66564d463d030", + "stateRoot": "0xb5fb155286d38e5d9a3a01251b3c3c6207217d84aa806abdeefaf029843896b0", + "transactionsTrie": "0xfa5cbef006f8526c97aea2df1f6d7da6968f04db55c9121be3cd1a90b4401309", + "receiptTrie": "0xee652a06815a432d5f2b3e9ecff47f1da5ea293bca394f6d08fc63db91569906", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x0326b4", + "gasUsed": "0x032828", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -4542,7 +4542,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x43d41ded6f6380d8116609693be537d92abad21aeeb6ea92a1995da5e651a5c9" + "hash": "0x54b43f1f9515d5c678272d86b75eef5e6307f9ff64921c29b71061820cdfc1c8" }, "blocknumber": "1", "transactions": [ @@ -4555,11 +4555,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb000000000000000000000000000000000000000000000000000000000000000061157104410181bdc6eac224aa9436ac268bdcfeecb6badf71d228adda820af3978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d1656875654806807dce8223a17fd2702eb75a13333f5d3128639df8fc09881a68d464d5765a1a0d2f4628ea573eddb3d6cf4846a0b4ec", + "data": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c624882cf0609af8c7cd4c256e63a35838c95a9ebbf6122540ab344b42fd66d32e18f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7987ea6df69bbe97c23e0dd948cf2d4490824ba7fea5af812721b2393354b0810a9dba2c231ea7ae30f26c412c7ea6e3a", "accessList": [], - "v": "0x00", - "r": "0x04bff879689a82b7b12070c7996b2d8710ff509d3c9396fb8c4b865f01f86f81", - "s": "0x2fb711a50468f01f5def161f5daa40bf1c62bda3c93388178655d4a4dccd98ce", + "v": "0x01", + "r": "0x0373cb4a98e39283abf022af09090498258b499a792ba82320d7aa6daf8ed3cf", + "s": "0x6be1234fe690f65f4490f56675eaa086bc965e52fdc377778081d7343a2ef98d", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -4567,7 +4567,7 @@ "withdrawals": [] } ], - "lastblockhash": "0x43d41ded6f6380d8116609693be537d92abad21aeeb6ea92a1995da5e651a5c9", + "lastblockhash": "0x54b43f1f9515d5c678272d86b75eef5e6307f9ff64921c29b71061820cdfc1c8", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -4612,16 +4612,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffe9f114", + "balance": "0xffffffffffffe9e6e8", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "035-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_ffa6e97b97146517": { + "035-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_d736268229bd87ec": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -4652,19 +4652,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0dd2535692d92d180092116c77c02aaf3b70813dcdf18690d3b9d6fe2baae5eeea076df6cc1db5d22eac5e69a4fbc66b0e42a1766e9f8bf4e181b8127af7159fdb0a07497b7d164ccff8cc1de53192611da363a4f48268df253dc03cd9d99010994c9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830320d80c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a06950ed03f403ea96cf685db6b359e4e902254f56e9607e1732f605bcfed83612a029650cc3a200b84afe703216fe8ef6b90cfc93d7a29e4584b9f36dd74e448053c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa045697ab25faa4cb90845238465e3d80ce516f41c828bbea47ed79a44fdbd5c98a040e7297fe073db243b4197e94b2bf9d5d46fcfbc301ac58536f6efb258c76c0aa0578146f9ff3b4decc7636b646d66f38a6068f41eb993f3d9f33de3e3f9fb66fdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303281c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c625fd58150b731b4facfcdd89c0e393ff842f5f2071303eff99b51e103161cd23393efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f14655694425f5cf336685a6a4e806ad4601f4b0d3707a655718f968c57e225f0e4b8d5fd61878234f25ec59d090c07ea725cf4c001a08062bb6127236caf59a0babb1eb316cd9cf4db55126230550a38411c48773c43a0215ab9619175bf3a7e08debcecfc30d2cbb605e6120f68f6d8ae4a35cfdcaf73c0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xdd2535692d92d180092116c77c02aaf3b70813dcdf18690d3b9d6fe2baae5eee", - "transactionsTrie": "0x76df6cc1db5d22eac5e69a4fbc66b0e42a1766e9f8bf4e181b8127af7159fdb0", - "receiptTrie": "0x7497b7d164ccff8cc1de53192611da363a4f48268df253dc03cd9d99010994c9", + "stateRoot": "0x45697ab25faa4cb90845238465e3d80ce516f41c828bbea47ed79a44fdbd5c98", + "transactionsTrie": "0x40e7297fe073db243b4197e94b2bf9d5d46fcfbc301ac58536f6efb258c76c0a", + "receiptTrie": "0x578146f9ff3b4decc7636b646d66f38a6068f41eb993f3d9f33de3e3f9fb66fd", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x0320d8", + "gasUsed": "0x03281c", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -4674,7 +4674,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x7043dc7cbd7df9965a9d033b51035b19dbfb57994ebe69978a00bcfe9f297526" + "hash": "0xc49da6439c1ab5458038c939ef7e98a6dc666a7bc0e8331fa9646a5866018de9" }, "blocknumber": "1", "transactions": [ @@ -4687,11 +4687,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "data": "0x01ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c625fd58150b731b4facfcdd89c0e393ff842f5f2071303eff99b51e103161cd23393efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f14655694425f5cf336685a6a4e806ad4601f4b0d3707a655718f968c57e225f0e4b8d5fd61878234f25ec59d090c07ea725cf4", "accessList": [], "v": "0x01", - "r": "0x6950ed03f403ea96cf685db6b359e4e902254f56e9607e1732f605bcfed83612", - "s": "0x29650cc3a200b84afe703216fe8ef6b90cfc93d7a29e4584b9f36dd74e448053", + "r": "0x8062bb6127236caf59a0babb1eb316cd9cf4db55126230550a38411c48773c43", + "s": "0x215ab9619175bf3a7e08debcecfc30d2cbb605e6120f68f6d8ae4a35cfdcaf73", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -4699,7 +4699,7 @@ "withdrawals": [] } ], - "lastblockhash": "0x7043dc7cbd7df9965a9d033b51035b19dbfb57994ebe69978a00bcfe9f297526", + "lastblockhash": "0xc49da6439c1ab5458038c939ef7e98a6dc666a7bc0e8331fa9646a5866018de9", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -4744,16 +4744,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffea1a18", + "balance": "0xffffffffffffe9e73c", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "036-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_02e696ada7d4631d": { + "036-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_e68d7111a2364a49": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -4784,19 +4784,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00e22425f3d01e5c3cb7eabad0387917efaef68d39428be7ccef698b103f3a447a004a1a672778d9afe774909ac6c6933c9620db646e2e954a57da0f77e9a4f3336a04386b450bd7c63d7edd63ccdf927d98e9907cb98731f0391734b8adb8bb205adb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008302878e0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc001a08761665c3a5d13e6401af73e293937ce67e0f9b511a94523dced29ded92ad259a054fb9fc63cbde05ac268934026e7f85f40aa7c560dea58416b29fff253b39a26c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d2a59cc9dd3c830b051dc217edd0b42a868fae6b41431a02e1666bda1833b9b1a0d55deb2710b6db8dad4542109d2281aa78d8ff1277c2a1758c5a0c053dbf0160a0a28962db15985dce9fc1f5c2c6e1bbc9c7be1f3fb810bb3e8ec0b6c2a227b1f3b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326c00c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b0000000000000000000000000000000000000000000000000000000000000002549345dd3612e36fab0ab7baffe3faa5b820d56b71348c89ecaf63f7c4f853708f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7a35c4f136a09a33c6437c26dc0c617ce6548a14bc4af7127690a411f5e1cde2f73157365212dbcea6432e0e7869cb006c001a079c75d58d4d2349d99b03f5f5255c9e1d780b2e7ab89ca44f01834df629e8e56a03351ebd9f15bbe07e5c7e6fe584ca3a1cae696edce769f53facea5fd2d93c256c0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x0e22425f3d01e5c3cb7eabad0387917efaef68d39428be7ccef698b103f3a447", - "transactionsTrie": "0x04a1a672778d9afe774909ac6c6933c9620db646e2e954a57da0f77e9a4f3336", - "receiptTrie": "0x4386b450bd7c63d7edd63ccdf927d98e9907cb98731f0391734b8adb8bb205ad", + "stateRoot": "0xd2a59cc9dd3c830b051dc217edd0b42a868fae6b41431a02e1666bda1833b9b1", + "transactionsTrie": "0xd55deb2710b6db8dad4542109d2281aa78d8ff1277c2a1758c5a0c053dbf0160", + "receiptTrie": "0xa28962db15985dce9fc1f5c2c6e1bbc9c7be1f3fb810bb3e8ec0b6c2a227b1f3", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x02878e", + "gasUsed": "0x0326c0", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -4806,7 +4806,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x2bf9066ef813c361bc07e566cfd9227707ea9d12a45d04eb5a64b28566dcdcd1" + "hash": "0x50583d3bc03056855aa0c5aaf9319714f0275572720e77f958f16561bc2cb98a" }, "blocknumber": "1", "transactions": [ @@ -4819,11 +4819,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb", + "data": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b0000000000000000000000000000000000000000000000000000000000000002549345dd3612e36fab0ab7baffe3faa5b820d56b71348c89ecaf63f7c4f853708f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7a35c4f136a09a33c6437c26dc0c617ce6548a14bc4af7127690a411f5e1cde2f73157365212dbcea6432e0e7869cb006", "accessList": [], "v": "0x01", - "r": "0x8761665c3a5d13e6401af73e293937ce67e0f9b511a94523dced29ded92ad259", - "s": "0x54fb9fc63cbde05ac268934026e7f85f40aa7c560dea58416b29fff253b39a26", + "r": "0x79c75d58d4d2349d99b03f5f5255c9e1d780b2e7ab89ca44f01834df629e8e56", + "s": "0x3351ebd9f15bbe07e5c7e6fe584ca3a1cae696edce769f53facea5fd2d93c256", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -4831,7 +4831,7 @@ "withdrawals": [] } ], - "lastblockhash": "0x2bf9066ef813c361bc07e566cfd9227707ea9d12a45d04eb5a64b28566dcdcd1", + "lastblockhash": "0x50583d3bc03056855aa0c5aaf9319714f0275572720e77f958f16561bc2cb98a", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -4858,10 +4858,12 @@ "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014", - "0x02": "0x02", - "0x04": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014", - "0x05": "0x02" + "0x00": "0x01", + "0x01": "0x1000", + "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001", + "0x03": "0x40", + "0x04": "0x1000", + "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" } }, "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { @@ -4874,16 +4876,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee4b1e", + "balance": "0xffffffffffffe9f0c0", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "037-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_08f9e2f1cb3d39db": { + "037-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_ed6b180ec759bcf6": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -4914,19 +4916,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa039e6cf2dc51e71cca21a7e661072775375f80ae2b1e15969b9156371f116ddaba0cd4a8874e3ccc776436970a3ba0461faff62b1912c230c3c4c6557ad49b4c7a0a083f1c2472613f4662d5c53d4a072c8494e1b1885b48d55c40c2655e5c8b52decb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028c560c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc080a0138f4598d3fab348fa26ad425e18899aa3d817f186dd71b8fba816f8e9efbc07a036608175642866b67209115f33ad78a2694b0780298733f4b02b5f6ff005a7ddc0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa045697ab25faa4cb90845238465e3d80ce516f41c828bbea47ed79a44fdbd5c98a0346a6bf7dfed70ffa6d239b4d2696980b0dd97e25c23c6a814837ca7db1f3323a0578146f9ff3b4decc7636b646d66f38a6068f41eb993f3d9f33de3e3f9fb66fdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303281c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f15eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c625ee1e9a4a06a02ca6ea14b0ca73415a8ba0fba888f18dde56df499b480d4b9e0a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06a1fcd37a924af9ec04143b44853c26f6b0738f6e15a3e0755057e7d5460406c7e148adb0e2d608982140d0ae42fe0b3bc001a051ac07e80d47d7a0508522bbebd2d6e4ad87c9af609cc8516e3a08abee75b31ba0626af8217c88c1bfe8c561bd0c903558ea5ccdd573d8a93421b812618a1cf0f3c0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x39e6cf2dc51e71cca21a7e661072775375f80ae2b1e15969b9156371f116ddab", - "transactionsTrie": "0xcd4a8874e3ccc776436970a3ba0461faff62b1912c230c3c4c6557ad49b4c7a0", - "receiptTrie": "0x83f1c2472613f4662d5c53d4a072c8494e1b1885b48d55c40c2655e5c8b52dec", + "stateRoot": "0x45697ab25faa4cb90845238465e3d80ce516f41c828bbea47ed79a44fdbd5c98", + "transactionsTrie": "0x346a6bf7dfed70ffa6d239b4d2696980b0dd97e25c23c6a814837ca7db1f3323", + "receiptTrie": "0x578146f9ff3b4decc7636b646d66f38a6068f41eb993f3d9f33de3e3f9fb66fd", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x028c56", + "gasUsed": "0x03281c", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -4936,7 +4938,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x9637178fc2f8dbc59d41492c68019a7332853fe334ff21ea1a2f82933f013d1e" + "hash": "0x13b13ac0b4631ac904348b9c5b9f6b890f146fdf85dd2fca929bf18a40f3311e" }, "blocknumber": "1", "transactions": [ @@ -4949,11 +4951,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb", + "data": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f15eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c625ee1e9a4a06a02ca6ea14b0ca73415a8ba0fba888f18dde56df499b480d4b9e0a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06a1fcd37a924af9ec04143b44853c26f6b0738f6e15a3e0755057e7d5460406c7e148adb0e2d608982140d0ae42fe0b3b", "accessList": [], - "v": "0x00", - "r": "0x138f4598d3fab348fa26ad425e18899aa3d817f186dd71b8fba816f8e9efbc07", - "s": "0x36608175642866b67209115f33ad78a2694b0780298733f4b02b5f6ff005a7dd", + "v": "0x01", + "r": "0x51ac07e80d47d7a0508522bbebd2d6e4ad87c9af609cc8516e3a08abee75b31b", + "s": "0x626af8217c88c1bfe8c561bd0c903558ea5ccdd573d8a93421b812618a1cf0f3", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -4961,7 +4963,7 @@ "withdrawals": [] } ], - "lastblockhash": "0x9637178fc2f8dbc59d41492c68019a7332853fe334ff21ea1a2f82933f013d1e", + "lastblockhash": "0x13b13ac0b4631ac904348b9c5b9f6b890f146fdf85dd2fca929bf18a40f3311e", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -4988,10 +4990,12 @@ "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", - "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000", - "0x04": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", - "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000" + "0x00": "0x01", + "0x01": "0x1000", + "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001", + "0x03": "0x40", + "0x04": "0x1000", + "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" } }, "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { @@ -5004,16 +5008,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee29a6", + "balance": "0xffffffffffffe9e73c", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "038-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_0cf79b17cb5f4ea2": { + "038-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_f0ed3dc11cdeb130": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -5044,19 +5048,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05c5af9dcb8db555f1af2b6266ba52a3a394e1ad52b5cca8267ef42167c48be15a059b133d3794635a7043f7a7826dc0924f752bc73929beb3509fbd22e38f3a41ea00137d25b707ed6f768d807427031584abda32d29bdf30c6dc20e35221b7dee71b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830288f60c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc001a0f91fb7dc93c1e45a397410e8555d53c57e240832059c43a034a2d7d40d26350ca05ed9468f5eb17b11ad7c487d78e5abb72a1062ac9417b9e01ee45e48133d7caac0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04159354b4217bfcfc25d574fbf48fd1422887e5256ef0bec95b34fa1d2837ceaa0cf3c30883f24409433d84b1ad29f2d48c0311e028e3c1d82f43a4c8132e0ae52a0ddac6235f1c3c7cf7be43069c6158087a3c278228d25e5f410defca825999683b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326a80c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e00000000000000000000000000000000000000000000000000000000000000001ed7d14d1b3fb1a1890d67b81715531553ad798df2009b4311d9fe2bea6cb964b49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193aa71f21ca51b443ad35bb8a26d274223a690d88d9629927dc80b0856093e08a372820248df5b8a43b6d98fd52a62fa376c001a08bbe8ab59a85fbd6782fa557398efe11d29e3249c567548ebfdaeba270a5e289a046ffe185ae723b2dc22f573fd205ccab2af35adac585763f2b0ba9e6ab1af76dc0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5c5af9dcb8db555f1af2b6266ba52a3a394e1ad52b5cca8267ef42167c48be15", - "transactionsTrie": "0x59b133d3794635a7043f7a7826dc0924f752bc73929beb3509fbd22e38f3a41e", - "receiptTrie": "0x0137d25b707ed6f768d807427031584abda32d29bdf30c6dc20e35221b7dee71", + "stateRoot": "0x4159354b4217bfcfc25d574fbf48fd1422887e5256ef0bec95b34fa1d2837cea", + "transactionsTrie": "0xcf3c30883f24409433d84b1ad29f2d48c0311e028e3c1d82f43a4c8132e0ae52", + "receiptTrie": "0xddac6235f1c3c7cf7be43069c6158087a3c278228d25e5f410defca825999683", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x0288f6", + "gasUsed": "0x0326a8", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -5066,7 +5070,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xaadf9c81dd9cf97c4ccad1fbbd270fca7a0a383187bc8f2ec4223acf64da7a7e" + "hash": "0x2a2029d6421b2e4324e1fc4d61a247911b99ab54df8996cdc9e01951c7256cc5" }, "blocknumber": "1", "transactions": [ @@ -5079,11 +5083,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb", + "data": "0x01228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e00000000000000000000000000000000000000000000000000000000000000001ed7d14d1b3fb1a1890d67b81715531553ad798df2009b4311d9fe2bea6cb964b49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193aa71f21ca51b443ad35bb8a26d274223a690d88d9629927dc80b0856093e08a372820248df5b8a43b6d98fd52a62fa376", "accessList": [], "v": "0x01", - "r": "0xf91fb7dc93c1e45a397410e8555d53c57e240832059c43a034a2d7d40d26350c", - "s": "0x5ed9468f5eb17b11ad7c487d78e5abb72a1062ac9417b9e01ee45e48133d7caa", + "r": "0x8bbe8ab59a85fbd6782fa557398efe11d29e3249c567548ebfdaeba270a5e289", + "s": "0x46ffe185ae723b2dc22f573fd205ccab2af35adac585763f2b0ba9e6ab1af76d", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -5091,7 +5095,7 @@ "withdrawals": [] } ], - "lastblockhash": "0xaadf9c81dd9cf97c4ccad1fbbd270fca7a0a383187bc8f2ec4223acf64da7a7e", + "lastblockhash": "0x2a2029d6421b2e4324e1fc4d61a247911b99ab54df8996cdc9e01951c7256cc5", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -5118,10 +5122,12 @@ "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014", - "0x02": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62", - "0x04": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014", - "0x05": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62" + "0x00": "0x01", + "0x01": "0x1000", + "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001", + "0x03": "0x40", + "0x04": "0x1000", + "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" } }, "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { @@ -5134,16 +5140,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee4146", + "balance": "0xffffffffffffe9f168", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "039-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_1ce8e4f69d5df899": { + "039-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_f47eb9fc139f6bfd": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -5174,19 +5180,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa099288a8e66788ee2bd86170ded90475494a6cd68d3090b50eba288e0944d9152a0c877a5cab973d3df9d8529a1ffab304f9adb6abfa2828f2745fac067091fa5c2a09898e4ea9bbc664488836d4ad0d3e82bd01b55dba40db65968e5c4e66c1ffae8b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028afa0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc573eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000000000000000000000000000000000000000000000000000000000000000000000b09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440efa491b284078832f22a229c6fb9c60670bbbcc13142ad50a9f53e3f2fa32e673416ce59d1dd05921cbb37f91bec352ad6c080a08f2d0d903f9a69f0f7faf08dc7f891727577d47be1af7039d7caa68cd4edd376a079682da2d7a619433763d3575d05b714599de53ddef69c7e7707f5df419c3873c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d2a59cc9dd3c830b051dc217edd0b42a868fae6b41431a02e1666bda1833b9b1a0ae6668667f2a291f276f76e934a6b38b3fe6860681b66127b53ad25e284e4c6fa0a28962db15985dce9fc1f5c2c6e1bbc9c7be1f3fb810bb3e8ec0b6c2a227b1f3b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326c00c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b000000000000000000000000000000000000000000000000000000000000000160f840641ec0d0c0d2b77b2d5a393b329442721fad05ab78c7b98f2aa3c20ec98f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43c001a06eb61083a9a45c07c765d52a17bfe79e8eda8eeb1395838988da31987c397b53a011196b13a0b7796abd006d318e4fac1c052c6c43c43fcb6153322e6fab29e6a1c0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x99288a8e66788ee2bd86170ded90475494a6cd68d3090b50eba288e0944d9152", - "transactionsTrie": "0xc877a5cab973d3df9d8529a1ffab304f9adb6abfa2828f2745fac067091fa5c2", - "receiptTrie": "0x9898e4ea9bbc664488836d4ad0d3e82bd01b55dba40db65968e5c4e66c1ffae8", + "stateRoot": "0xd2a59cc9dd3c830b051dc217edd0b42a868fae6b41431a02e1666bda1833b9b1", + "transactionsTrie": "0xae6668667f2a291f276f76e934a6b38b3fe6860681b66127b53ad25e284e4c6f", + "receiptTrie": "0xa28962db15985dce9fc1f5c2c6e1bbc9c7be1f3fb810bb3e8ec0b6c2a227b1f3", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x028afa", + "gasUsed": "0x0326c0", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -5196,7 +5202,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xc82068294890a58754aef359af3198d6420939717677a7c0408ec6d182557db0" + "hash": "0x261968fe4934c84015b5fbf24dcb17759a3d69af186dda281b30edc486485829" }, "blocknumber": "1", "transactions": [ @@ -5209,11 +5215,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc573eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000000000000000000000000000000000000000000000000000000000000000000000b09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440efa491b284078832f22a229c6fb9c60670bbbcc13142ad50a9f53e3f2fa32e673416ce59d1dd05921cbb37f91bec352ad6", + "data": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b000000000000000000000000000000000000000000000000000000000000000160f840641ec0d0c0d2b77b2d5a393b329442721fad05ab78c7b98f2aa3c20ec98f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43", "accessList": [], - "v": "0x00", - "r": "0x8f2d0d903f9a69f0f7faf08dc7f891727577d47be1af7039d7caa68cd4edd376", - "s": "0x79682da2d7a619433763d3575d05b714599de53ddef69c7e7707f5df419c3873", + "v": "0x01", + "r": "0x6eb61083a9a45c07c765d52a17bfe79e8eda8eeb1395838988da31987c397b53", + "s": "0x11196b13a0b7796abd006d318e4fac1c052c6c43c43fcb6153322e6fab29e6a1", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -5221,7 +5227,7 @@ "withdrawals": [] } ], - "lastblockhash": "0xc82068294890a58754aef359af3198d6420939717677a7c0408ec6d182557db0", + "lastblockhash": "0x261968fe4934c84015b5fbf24dcb17759a3d69af186dda281b30edc486485829", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -5248,10 +5254,12 @@ "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5", - "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000", - "0x04": "0x01d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5", - "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000" + "0x00": "0x01", + "0x01": "0x1000", + "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001", + "0x03": "0x40", + "0x04": "0x1000", + "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" } }, "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { @@ -5264,16 +5272,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee332a", + "balance": "0xffffffffffffe9f0c0", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "040-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_26b753dec0560daa": { + "040-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_f7f44e1e864aa967": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -5304,19 +5312,3941 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07ca39de0553a61927b69f919b268e0e018a7092217095951202e800f756f1fffa047df3d451616073f0c46b135f19c2cd8d2d26d1daa6746c82b7aec1233a106c5a0f521defef700cc1dbe52bf6fa2da712b09b13684d78fa9cef3a24ac4e957b0c7b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301ef8e0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5000000000000000000000000000000000000000000000000000000000000000073e66878b46ae3705eb6a46a89213de7d3686828bfce5c19400fffff00100001b09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440ef83bdb1c6f172d8e30a58533d4df96d9133b7ee293ae76777d60454cb35ef28f08634a794dc098baa22499347ab9a00dbc001a04e4d3b0553b0ce6f210dd5b7729abd38c8bfb0a79e2dd75ade44837a02f8b699a028a151bb6e7fb9e7c0960dca0ff2433fa92f30af940e3a3162d2ddf36c0d8317c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09d5a65cc5fbc0b6888f1ca061efcdc9dbd670aa7f06ca8ef23623acb629bd5d1a085221ef646bdac0ca9852709b72edd4bba98e3c13ce05fe0d4288b707d16f026a0f2770ea2a80642c8e6b1a1748dfaf23bd1caeb8b204723206ab66564d463d030b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326b40c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b000000000000000000000000000000000000000000000000000000000000000061157104410181bdc6eac224aa9436ac268bdcfeecb6badf71d228adda820af38f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7809adfa8b078b0921cdb8696ca017a0cc2d5337109016f36a766886eade28d32f205311ff5def247c3ddba91896fae97c080a008dd3fdefb25997c98d9e3343a574cb5ad5f0ad6fb7c38a627bd5b9b1a4f2c2da079516fec030f0d31058ca022daa456180b8111902da996e33378b52440990c30c0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x7ca39de0553a61927b69f919b268e0e018a7092217095951202e800f756f1fff", - "transactionsTrie": "0x47df3d451616073f0c46b135f19c2cd8d2d26d1daa6746c82b7aec1233a106c5", - "receiptTrie": "0xf521defef700cc1dbe52bf6fa2da712b09b13684d78fa9cef3a24ac4e957b0c7", + "stateRoot": "0x9d5a65cc5fbc0b6888f1ca061efcdc9dbd670aa7f06ca8ef23623acb629bd5d1", + "transactionsTrie": "0x85221ef646bdac0ca9852709b72edd4bba98e3c13ce05fe0d4288b707d16f026", + "receiptTrie": "0xf2770ea2a80642c8e6b1a1748dfaf23bd1caeb8b204723206ab66564d463d030", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x01ef8e", + "gasUsed": "0x0326b4", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x5a317d7cbae32b4204671d6c02266cbfddf35ad4a8a148fee57f0b33e2b9391d" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b000000000000000000000000000000000000000000000000000000000000000061157104410181bdc6eac224aa9436ac268bdcfeecb6badf71d228adda820af38f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7809adfa8b078b0921cdb8696ca017a0cc2d5337109016f36a766886eade28d32f205311ff5def247c3ddba91896fae97", + "accessList": [], + "v": "0x00", + "r": "0x08dd3fdefb25997c98d9e3343a574cb5ad5f0ad6fb7c38a627bd5b9b1a4f2c2d", + "s": "0x79516fec030f0d31058ca022daa456180b8111902da996e33378b52440990c30", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x5a317d7cbae32b4204671d6c02266cbfddf35ad4a8a148fee57f0b33e2b9391d", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": { + "0x00": "0x01", + "0x01": "0x1000", + "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001", + "0x03": "0x40", + "0x04": "0x1000", + "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xffffffffffffe9f114", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "041-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_ffa6e97b97146517": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", + "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, + "blocks": [ + { + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0dd2535692d92d180092116c77c02aaf3b70813dcdf18690d3b9d6fe2baae5eeea076df6cc1db5d22eac5e69a4fbc66b0e42a1766e9f8bf4e181b8127af7159fdb0a07497b7d164ccff8cc1de53192611da363a4f48268df253dc03cd9d99010994c9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830320d80c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a06950ed03f403ea96cf685db6b359e4e902254f56e9607e1732f605bcfed83612a029650cc3a200b84afe703216fe8ef6b90cfc93d7a29e4584b9f36dd74e448053c0c0", + "blockHeader": { + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xdd2535692d92d180092116c77c02aaf3b70813dcdf18690d3b9d6fe2baae5eee", + "transactionsTrie": "0x76df6cc1db5d22eac5e69a4fbc66b0e42a1766e9f8bf4e181b8127af7159fdb0", + "receiptTrie": "0x7497b7d164ccff8cc1de53192611da363a4f48268df253dc03cd9d99010994c9", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0320d8", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x7043dc7cbd7df9965a9d033b51035b19dbfb57994ebe69978a00bcfe9f297526" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "accessList": [], + "v": "0x01", + "r": "0x6950ed03f403ea96cf685db6b359e4e902254f56e9607e1732f605bcfed83612", + "s": "0x29650cc3a200b84afe703216fe8ef6b90cfc93d7a29e4584b9f36dd74e448053", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x7043dc7cbd7df9965a9d033b51035b19dbfb57994ebe69978a00bcfe9f297526", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": { + "0x00": "0x01", + "0x01": "0x1000", + "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001", + "0x03": "0x40", + "0x04": "0x1000", + "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xffffffffffffea1a18", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "042-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_point_at_infinity_for_twos_poly_05c1f3685f3393f0": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", + "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, + "blocks": [ + { + "rlp": "0xf9036ff9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0daa2e7172725bfa180044d9a50f715abdd0b4e2b908bea2e9a1b59446d74db5aa064694503549631721abbd0ccbc59bbb11f6987a03104eef1e12a3d3d1aca8579a0cffc4636a42d9c6309bc3a1501b115d31f9b57efcb36cdab27c5e3ef9c756d09b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303248c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012ab9012702f9012301808007830f424094000000000000000000000000000000000000010080b8c001cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e38637564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363060000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a056cc0f64cca987cba1d1c7f6f39aadaafefae85a8dadadc776cf2881c6194c219f8727fa857ab3248103a8636248eaedaed219c313bf97e2673a9bab17226144c0c0", + "blockHeader": { + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xdaa2e7172725bfa180044d9a50f715abdd0b4e2b908bea2e9a1b59446d74db5a", + "transactionsTrie": "0x64694503549631721abbd0ccbc59bbb11f6987a03104eef1e12a3d3d1aca8579", + "receiptTrie": "0xcffc4636a42d9c6309bc3a1501b115d31f9b57efcb36cdab27c5e3ef9c756d09", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x03248c", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x9e09b698405a8b1d07a8b74ee53b5d0a3174b6c7a933f1c0ce594b5af4d2172a" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e38637564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363060000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "accessList": [], + "v": "0x00", + "r": "0x56cc0f64cca987cba1d1c7f6f39aadaafefae85a8dadadc776cf2881c6194c21", + "s": "0x8727fa857ab3248103a8636248eaedaed219c313bf97e2673a9bab17226144", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x9e09b698405a8b1d07a8b74ee53b5d0a3174b6c7a933f1c0ce594b5af4d2172a", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": { + "0x00": "0x01", + "0x01": "0x1000", + "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001", + "0x03": "0x40", + "0x04": "0x1000", + "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xffffffffffffea002c", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "043-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_point_at_infinity_for_twos_poly_177b58dc7a46b08f": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", + "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, + "blocks": [ + { + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09ee9c8e9998e316ff7563b4fb05e35b3cc8f20337ca314d83c098149fd6c0d9da0b835914c32846ce4b9f953b0ba04cf33028ecc13380fd2c259575cada7be2d30a04bf1348d0fdae7278cb03c8bb2e38fdebee3a8d9312f9fe9639e449b2353b9b4b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830324800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e386375eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0041603d4d4eee85f8717ccf36cc9332488c80a98288dab307cefa8cf4779d9d0a043eff97f53dd7225d6f09e384fc0841ae1d4270b493ca3f28a75a1ce188d2505c0c0", + "blockHeader": { + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x9ee9c8e9998e316ff7563b4fb05e35b3cc8f20337ca314d83c098149fd6c0d9d", + "transactionsTrie": "0xb835914c32846ce4b9f953b0ba04cf33028ecc13380fd2c259575cada7be2d30", + "receiptTrie": "0x4bf1348d0fdae7278cb03c8bb2e38fdebee3a8d9312f9fe9639e449b2353b9b4", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x032480", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xf2f72e3687bae12fd957a7467c84db42d33b6fb8d75c541c8d0302fa63fbf2c2" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e386375eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "accessList": [], + "v": "0x00", + "r": "0x041603d4d4eee85f8717ccf36cc9332488c80a98288dab307cefa8cf4779d9d0", + "s": "0x43eff97f53dd7225d6f09e384fc0841ae1d4270b493ca3f28a75a1ce188d2505", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xf2f72e3687bae12fd957a7467c84db42d33b6fb8d75c541c8d0302fa63fbf2c2", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": { + "0x00": "0x01", + "0x01": "0x1000", + "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001", + "0x03": "0x40", + "0x04": "0x1000", + "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xffffffffffffea0080", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "044-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_point_at_infinity_for_twos_poly_2b76dc9e3abf42f3": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", + "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, + "blocks": [ + { + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04a133c11db920fba4882b5f6f8b1a5fca6225d9ccb55e8acabd65c098e21e283a04a48dfbccb8fac2366ab037f6e4e1ba275d8678681973fdfd6712bd5e5b730f9a0091757d992eaa78b80aa36f0b2faba95782069d4cbbd8d3fa36ad5c8fee43138b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830323180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e3863700000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a09195fc709fd538fc7555a818e0574406c1cd8cc72fe2e3a50c6b8976e66e3ee0a04b3cbb9786db1ef4866288d895b09850b5167aa3d454a1c7bce0ad99b7065cb7c0c0", + "blockHeader": { + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x4a133c11db920fba4882b5f6f8b1a5fca6225d9ccb55e8acabd65c098e21e283", + "transactionsTrie": "0x4a48dfbccb8fac2366ab037f6e4e1ba275d8678681973fdfd6712bd5e5b730f9", + "receiptTrie": "0x091757d992eaa78b80aa36f0b2faba95782069d4cbbd8d3fa36ad5c8fee43138", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x032318", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xd196fb6b1529cad09b38c60dee6b19557597903353ec2d5b6443a1a92153d4b8" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e3863700000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "accessList": [], + "v": "0x00", + "r": "0x9195fc709fd538fc7555a818e0574406c1cd8cc72fe2e3a50c6b8976e66e3ee0", + "s": "0x4b3cbb9786db1ef4866288d895b09850b5167aa3d454a1c7bce0ad99b7065cb7", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xd196fb6b1529cad09b38c60dee6b19557597903353ec2d5b6443a1a92153d4b8", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": { + "0x00": "0x01", + "0x01": "0x1000", + "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001", + "0x03": "0x40", + "0x04": "0x1000", + "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xffffffffffffea0a58", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "045-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_point_at_infinity_for_twos_poly_395cf6d697d1a743": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", + "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, + "blocks": [ + { + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0092ca77027ac1b9ca4a5cb57621c139371b077dd8335981de8c9db4a005b7fc4a049a925eb922da73de67e2944080379e4078dc8df996329fec5ebf2e61ee77911a060d05e6d4f087896952e0161c798979dbef6212d3979c5cf31d4538884a22009b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303245c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e3863773eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000000000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a05e5d495a95eea1e64aa3bdf92cbe528b70e5e81100472c3ef4ed1fdad748055ba04e210a87cb7bf98868e1246eb5d8212988c2783e420552ec24325e3a647ea07bc0c0", + "blockHeader": { + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x092ca77027ac1b9ca4a5cb57621c139371b077dd8335981de8c9db4a005b7fc4", + "transactionsTrie": "0x49a925eb922da73de67e2944080379e4078dc8df996329fec5ebf2e61ee77911", + "receiptTrie": "0x60d05e6d4f087896952e0161c798979dbef6212d3979c5cf31d4538884a22009", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x03245c", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x779b5486e45d40883705c473c112306c4448997808ed1419e4bb8fbe42a9e920" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e3863773eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000000000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "accessList": [], + "v": "0x01", + "r": "0x5e5d495a95eea1e64aa3bdf92cbe528b70e5e81100472c3ef4ed1fdad748055b", + "s": "0x4e210a87cb7bf98868e1246eb5d8212988c2783e420552ec24325e3a647ea07b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x779b5486e45d40883705c473c112306c4448997808ed1419e4bb8fbe42a9e920", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": { + "0x00": "0x01", + "0x01": "0x1000", + "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001", + "0x03": "0x40", + "0x04": "0x1000", + "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xffffffffffffea017c", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "046-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_point_at_infinity_for_twos_poly_585454b31673dd62": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", + "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, + "blocks": [ + { + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d46a4550e8ad1b69c10e07338f772b34c3365beade08f7bbffbeab6c9335524aa0282b431779e1edd7b75fd86161bdd6e347546fad2b2284d67f952e5755adb094a096b754aa64debb4f75196685c39339e3cfc406785621fa534c4690b8f3449dccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303230c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e3863700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a061f61fd735c0e515d2d6f3cbbbc9d3a8cde28c0bc8c4b46ac6e0975a0b9d78eba043a0f69d32510e18b654902012185f7454f8528aafed5ff1067c6f2342bc16f2c0c0", + "blockHeader": { + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xd46a4550e8ad1b69c10e07338f772b34c3365beade08f7bbffbeab6c9335524a", + "transactionsTrie": "0x282b431779e1edd7b75fd86161bdd6e347546fad2b2284d67f952e5755adb094", + "receiptTrie": "0x96b754aa64debb4f75196685c39339e3cfc406785621fa534c4690b8f3449dcc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x03230c", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xaa57f81b8a5c24c452e8946c997713aa13d839c5d9432d876fcc53ea8467e09e" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e3863700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "accessList": [], + "v": "0x01", + "r": "0x61f61fd735c0e515d2d6f3cbbbc9d3a8cde28c0bc8c4b46ac6e0975a0b9d78eb", + "s": "0x43a0f69d32510e18b654902012185f7454f8528aafed5ff1067c6f2342bc16f2", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xaa57f81b8a5c24c452e8946c997713aa13d839c5d9432d876fcc53ea8467e09e", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": { + "0x00": "0x01", + "0x01": "0x1000", + "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001", + "0x03": "0x40", + "0x04": "0x1000", + "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xffffffffffffea0aac", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "047-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_point_at_infinity_for_twos_poly_a0be66af9a97ea52": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", + "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, + "blocks": [ + { + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04a133c11db920fba4882b5f6f8b1a5fca6225d9ccb55e8acabd65c098e21e283a0fceba5b9017f510fbc5e63371919d3b97e09c8e4645d8aac480f54c522d29281a0091757d992eaa78b80aa36f0b2faba95782069d4cbbd8d3fa36ad5c8fee43138b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830323180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e3863700000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0f5a0c88b6ab5779b674f50f35ff6a84e9de6a974a504e57f2831c07964432d3ca00316a20572a66083f1bd4e473ffbfdaff0ae5fdd62491052b411f92be107e260c0c0", + "blockHeader": { + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x4a133c11db920fba4882b5f6f8b1a5fca6225d9ccb55e8acabd65c098e21e283", + "transactionsTrie": "0xfceba5b9017f510fbc5e63371919d3b97e09c8e4645d8aac480f54c522d29281", + "receiptTrie": "0x091757d992eaa78b80aa36f0b2faba95782069d4cbbd8d3fa36ad5c8fee43138", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x032318", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xfaf98fd3423a87ff451d8df58ace9e7a133a156daf21e246b36a55a4598ee45e" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e3863700000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "accessList": [], + "v": "0x00", + "r": "0xf5a0c88b6ab5779b674f50f35ff6a84e9de6a974a504e57f2831c07964432d3c", + "s": "0x0316a20572a66083f1bd4e473ffbfdaff0ae5fdd62491052b411f92be107e260", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xfaf98fd3423a87ff451d8df58ace9e7a133a156daf21e246b36a55a4598ee45e", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": { + "0x00": "0x01", + "0x01": "0x1000", + "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001", + "0x03": "0x40", + "0x04": "0x1000", + "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xffffffffffffea0a58", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "048-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_point_at_infinity_for_zero_poly_02e696ada7d4631d": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", + "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, + "blocks": [ + { + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0dd2535692d92d180092116c77c02aaf3b70813dcdf18690d3b9d6fe2baae5eeea0342a7b460150feecdcb631315bdec6482e2c61fdbd3503ec02fe14e29f3bf370a07497b7d164ccff8cc1de53192611da363a4f48268df253dc03cd9d99010994c9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830320d80c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a065f7b12b0599ab4d9ebb3eb4b578437f752aa0cb55ddf51fff8606bef0810d11a01fe1f62b259c12418cf77f0e4f4fe740701e7e24977b011ecbc9ea14e67fc356c0c0", + "blockHeader": { + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xdd2535692d92d180092116c77c02aaf3b70813dcdf18690d3b9d6fe2baae5eee", + "transactionsTrie": "0x342a7b460150feecdcb631315bdec6482e2c61fdbd3503ec02fe14e29f3bf370", + "receiptTrie": "0x7497b7d164ccff8cc1de53192611da363a4f48268df253dc03cd9d99010994c9", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0320d8", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xb9ad0d2b7827d79ddd92eb487aeccaaf8eafbb6e474d95f2d30c938eb632366e" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "accessList": [], + "v": "0x00", + "r": "0x65f7b12b0599ab4d9ebb3eb4b578437f752aa0cb55ddf51fff8606bef0810d11", + "s": "0x1fe1f62b259c12418cf77f0e4f4fe740701e7e24977b011ecbc9ea14e67fc356", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xb9ad0d2b7827d79ddd92eb487aeccaaf8eafbb6e474d95f2d30c938eb632366e", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": { + "0x00": "0x01", + "0x01": "0x1000", + "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001", + "0x03": "0x40", + "0x04": "0x1000", + "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xffffffffffffea1a18", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "049-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_point_at_infinity_for_zero_poly_0cf79b17cb5f4ea2": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", + "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, + "blocks": [ + { + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bff95dd737627225c19a4001d9e0ac170f07cfcf671baa06eafbdc170412e94aa09de76ebe2fbdd1eb1a72a2e02745283ea9c1a5589acfbca28e25b9705616f360a076ad64f6308db609864c81c154e4e31f69f77b180f6e6abcc0126c8062982fb5b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830322400c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a05d3bf2f997666f4680b7e444ca7e44c0b2de13ee5223f26a7a7bde6f088aec02a069b227b9cd40fa2c0fe4fb4616f1048b448d849427efdb783389c6e6e6caaf22c0c0", + "blockHeader": { + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xbff95dd737627225c19a4001d9e0ac170f07cfcf671baa06eafbdc170412e94a", + "transactionsTrie": "0x9de76ebe2fbdd1eb1a72a2e02745283ea9c1a5589acfbca28e25b9705616f360", + "receiptTrie": "0x76ad64f6308db609864c81c154e4e31f69f77b180f6e6abcc0126c8062982fb5", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x032240", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xdd7a27a92391f614fe183adf097706a5415284d90a8611aa090f116bfac1b617" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "accessList": [], + "v": "0x01", + "r": "0x5d3bf2f997666f4680b7e444ca7e44c0b2de13ee5223f26a7a7bde6f088aec02", + "s": "0x69b227b9cd40fa2c0fe4fb4616f1048b448d849427efdb783389c6e6e6caaf22", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xdd7a27a92391f614fe183adf097706a5415284d90a8611aa090f116bfac1b617", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": { + "0x00": "0x01", + "0x01": "0x1000", + "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001", + "0x03": "0x40", + "0x04": "0x1000", + "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xffffffffffffea1040", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "050-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_point_at_infinity_for_zero_poly_3208425794224c3f": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", + "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, + "blocks": [ + { + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0738d7b0d4ecfc92c33bc85a7459539409c3afb0ec7282be253b91a459964e71ea0baebc069a2a30182ede5e6ff232fbddf799b0296261aa1db9f0f290d1a78c24fa0c787f58393e74b7115d9f2d353282ab2810a28498a85db4cb8d94d7b5239e15bb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303224c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363060000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0e0e99a9b9d721ea19859ff421ecf4c9f93a0f889e44e37ab1eed8f5337ec64afa04a02154ba84ccb9be41e523726b233a69c4d9d31eb439597178b968b8e6c6d1dc0c0", + "blockHeader": { + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x738d7b0d4ecfc92c33bc85a7459539409c3afb0ec7282be253b91a459964e71e", + "transactionsTrie": "0xbaebc069a2a30182ede5e6ff232fbddf799b0296261aa1db9f0f290d1a78c24f", + "receiptTrie": "0xc787f58393e74b7115d9f2d353282ab2810a28498a85db4cb8d94d7b5239e15b", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x03224c", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x80597272dcd6133f5a9a4ef9a68e8d043f714473bf81b32de54e2fc946c35b9e" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363060000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "accessList": [], + "v": "0x00", + "r": "0xe0e99a9b9d721ea19859ff421ecf4c9f93a0f889e44e37ab1eed8f5337ec64af", + "s": "0x4a02154ba84ccb9be41e523726b233a69c4d9d31eb439597178b968b8e6c6d1d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x80597272dcd6133f5a9a4ef9a68e8d043f714473bf81b32de54e2fc946c35b9e", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": { + "0x00": "0x01", + "0x01": "0x1000", + "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001", + "0x03": "0x40", + "0x04": "0x1000", + "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xffffffffffffea0fec", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "051-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_point_at_infinity_for_zero_poly_3ac8dc31e9aa6a70": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", + "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, + "blocks": [ + { + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa002e49a5b61d560438e797b371a948baa544418d3ea542e48cc62401567b3b321a023c2e283739049651d077fdfc364eb7d4e6f26c0eb394e58898f13fd4823519ca007194d446d05e8c42fac0ab572a81e5572a2dbd57e309129ed37cfff436b5affb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303221c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401473eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0cdcb82e08bcb8bb0eb6de7c1e142a910aa413891c9deeccd0c650737f5407307a06df091d7bdd64b38d24910e969040afa2f65abd8b0ddf8c42ce5e582edfcf4fec0c0", + "blockHeader": { + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x02e49a5b61d560438e797b371a948baa544418d3ea542e48cc62401567b3b321", + "transactionsTrie": "0x23c2e283739049651d077fdfc364eb7d4e6f26c0eb394e58898f13fd4823519c", + "receiptTrie": "0x07194d446d05e8c42fac0ab572a81e5572a2dbd57e309129ed37cfff436b5aff", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x03221c", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x290bf0da14e9633aab43e0b391ecf236bdfca6ec38af81aec507dba2898c90ac" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401473eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "accessList": [], + "v": "0x00", + "r": "0xcdcb82e08bcb8bb0eb6de7c1e142a910aa413891c9deeccd0c650737f5407307", + "s": "0x6df091d7bdd64b38d24910e969040afa2f65abd8b0ddf8c42ce5e582edfcf4fe", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x290bf0da14e9633aab43e0b391ecf236bdfca6ec38af81aec507dba2898c90ac", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": { + "0x00": "0x01", + "0x01": "0x1000", + "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001", + "0x03": "0x40", + "0x04": "0x1000", + "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xffffffffffffea113c", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "052-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_point_at_infinity_for_zero_poly_c3d4322ec17fe7cd": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", + "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, + "blocks": [ + { + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0743fe046e9b8d686844a4f68f0b8af10f37bf2e64d131506c5417e048f5785d6a042814b49a3b2b951f3854a765e6fc5cf5c639083e40c5ffa2202356905f921f9a0490b5c8fc35fec021870f881c330c6034e503b53179152e33e6794d2a819e605b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830320cc0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a01010fd3a61c3d74461450afa223aa148e5eb10993e04e942635e293ceb5fa373a04b3244a006b52d7d9b301b8f6854c428bc129821f52887efff046aa7026afef6c0c0", + "blockHeader": { + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x743fe046e9b8d686844a4f68f0b8af10f37bf2e64d131506c5417e048f5785d6", + "transactionsTrie": "0x42814b49a3b2b951f3854a765e6fc5cf5c639083e40c5ffa2202356905f921f9", + "receiptTrie": "0x490b5c8fc35fec021870f881c330c6034e503b53179152e33e6794d2a819e605", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0320cc", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x8d2ccab0973120f15fc7ca4924ba94818236ac335122c7c425b5ea0f2d078d7c" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "accessList": [], + "v": "0x01", + "r": "0x1010fd3a61c3d74461450afa223aa148e5eb10993e04e942635e293ceb5fa373", + "s": "0x4b3244a006b52d7d9b301b8f6854c428bc129821f52887efff046aa7026afef6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x8d2ccab0973120f15fc7ca4924ba94818236ac335122c7c425b5ea0f2d078d7c", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": { + "0x00": "0x01", + "0x01": "0x1000", + "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001", + "0x03": "0x40", + "0x04": "0x1000", + "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xffffffffffffea1a6c", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "053-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_point_at_infinity_for_zero_poly_ffa6e97b97146517": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", + "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, + "blocks": [ + { + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0dd2535692d92d180092116c77c02aaf3b70813dcdf18690d3b9d6fe2baae5eeea076df6cc1db5d22eac5e69a4fbc66b0e42a1766e9f8bf4e181b8127af7159fdb0a07497b7d164ccff8cc1de53192611da363a4f48268df253dc03cd9d99010994c9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830320d80c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a06950ed03f403ea96cf685db6b359e4e902254f56e9607e1732f605bcfed83612a029650cc3a200b84afe703216fe8ef6b90cfc93d7a29e4584b9f36dd74e448053c0c0", + "blockHeader": { + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xdd2535692d92d180092116c77c02aaf3b70813dcdf18690d3b9d6fe2baae5eee", + "transactionsTrie": "0x76df6cc1db5d22eac5e69a4fbc66b0e42a1766e9f8bf4e181b8127af7159fdb0", + "receiptTrie": "0x7497b7d164ccff8cc1de53192611da363a4f48268df253dc03cd9d99010994c9", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0320d8", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x7043dc7cbd7df9965a9d033b51035b19dbfb57994ebe69978a00bcfe9f297526" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "accessList": [], + "v": "0x01", + "r": "0x6950ed03f403ea96cf685db6b359e4e902254f56e9607e1732f605bcfed83612", + "s": "0x29650cc3a200b84afe703216fe8ef6b90cfc93d7a29e4584b9f36dd74e448053", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x7043dc7cbd7df9965a9d033b51035b19dbfb57994ebe69978a00bcfe9f297526", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": { + "0x00": "0x01", + "0x01": "0x1000", + "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001", + "0x03": "0x40", + "0x04": "0x1000", + "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xffffffffffffea1a18", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "054-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_02e696ada7d4631d": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", + "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, + "blocks": [ + { + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00e22425f3d01e5c3cb7eabad0387917efaef68d39428be7ccef698b103f3a447a004a1a672778d9afe774909ac6c6933c9620db646e2e954a57da0f77e9a4f3336a04386b450bd7c63d7edd63ccdf927d98e9907cb98731f0391734b8adb8bb205adb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008302878e0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc001a08761665c3a5d13e6401af73e293937ce67e0f9b511a94523dced29ded92ad259a054fb9fc63cbde05ac268934026e7f85f40aa7c560dea58416b29fff253b39a26c0c0", + "blockHeader": { + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0e22425f3d01e5c3cb7eabad0387917efaef68d39428be7ccef698b103f3a447", + "transactionsTrie": "0x04a1a672778d9afe774909ac6c6933c9620db646e2e954a57da0f77e9a4f3336", + "receiptTrie": "0x4386b450bd7c63d7edd63ccdf927d98e9907cb98731f0391734b8adb8bb205ad", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x02878e", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x2bf9066ef813c361bc07e566cfd9227707ea9d12a45d04eb5a64b28566dcdcd1" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb", + "accessList": [], + "v": "0x01", + "r": "0x8761665c3a5d13e6401af73e293937ce67e0f9b511a94523dced29ded92ad259", + "s": "0x54fb9fc63cbde05ac268934026e7f85f40aa7c560dea58416b29fff253b39a26", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x2bf9066ef813c361bc07e566cfd9227707ea9d12a45d04eb5a64b28566dcdcd1", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": { + "0x01": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014", + "0x02": "0x02", + "0x04": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014", + "0x05": "0x02" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xffffffffffffee4b1e", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "055-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_05c1f3685f3393f0": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", + "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, + "blocks": [ + { + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa081cedcc5e151455b8cfaa3e3620332315ed1c9dccb4d9a5c624f2e9fabd8bf4ba0dfc81dd9f75d5269388597a628f4bbfa3b42025a7c7e350ace3592e6dd3763eda00854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b420c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e38637564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363060000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4e97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc080a0b39ade89f9fa653e72b6bd7be08c068c0d69f81421abfb6ff9379714de9407d8a07e42b1e5ded69fc2589e6111e180ae8c2abf81ea948678cf6dcbb5261da2cb8dc0c0", + "blockHeader": { + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x81cedcc5e151455b8cfaa3e3620332315ed1c9dccb4d9a5c624f2e9fabd8bf4b", + "transactionsTrie": "0xdfc81dd9f75d5269388597a628f4bbfa3b42025a7c7e350ace3592e6dd3763ed", + "receiptTrie": "0x0854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x028b42", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x48a9a2f705205705d42ee9e38fa00aa1a66a9a77e9c87721ff785d33cb62955a" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e38637564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363060000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4e97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb", + "accessList": [], + "v": "0x00", + "r": "0xb39ade89f9fa653e72b6bd7be08c068c0d69f81421abfb6ff9379714de9407d8", + "s": "0x7e42b1e5ded69fc2589e6111e180ae8c2abf81ea948678cf6dcbb5261da2cb8d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x48a9a2f705205705d42ee9e38fa00aa1a66a9a77e9c87721ff785d33cb62955a", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": { + "0x01": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e38637", + "0x02": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306", + "0x04": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e38637", + "0x05": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xffffffffffffee3132", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "056-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_08f9e2f1cb3d39db": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", + "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, + "blocks": [ + { + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa039e6cf2dc51e71cca21a7e661072775375f80ae2b1e15969b9156371f116ddaba0cd4a8874e3ccc776436970a3ba0461faff62b1912c230c3c4c6557ad49b4c7a0a083f1c2472613f4662d5c53d4a072c8494e1b1885b48d55c40c2655e5c8b52decb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028c560c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc080a0138f4598d3fab348fa26ad425e18899aa3d817f186dd71b8fba816f8e9efbc07a036608175642866b67209115f33ad78a2694b0780298733f4b02b5f6ff005a7ddc0c0", + "blockHeader": { + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x39e6cf2dc51e71cca21a7e661072775375f80ae2b1e15969b9156371f116ddab", + "transactionsTrie": "0xcd4a8874e3ccc776436970a3ba0461faff62b1912c230c3c4c6557ad49b4c7a0", + "receiptTrie": "0x83f1c2472613f4662d5c53d4a072c8494e1b1885b48d55c40c2655e5c8b52dec", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x028c56", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x9637178fc2f8dbc59d41492c68019a7332853fe334ff21ea1a2f82933f013d1e" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb", + "accessList": [], + "v": "0x00", + "r": "0x138f4598d3fab348fa26ad425e18899aa3d817f186dd71b8fba816f8e9efbc07", + "s": "0x36608175642866b67209115f33ad78a2694b0780298733f4b02b5f6ff005a7dd", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x9637178fc2f8dbc59d41492c68019a7332853fe334ff21ea1a2f82933f013d1e", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": { + "0x01": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", + "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000", + "0x04": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", + "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xffffffffffffee29a6", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "057-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_0cf79b17cb5f4ea2": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", + "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, + "blocks": [ + { + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05c5af9dcb8db555f1af2b6266ba52a3a394e1ad52b5cca8267ef42167c48be15a059b133d3794635a7043f7a7826dc0924f752bc73929beb3509fbd22e38f3a41ea00137d25b707ed6f768d807427031584abda32d29bdf30c6dc20e35221b7dee71b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830288f60c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc001a0f91fb7dc93c1e45a397410e8555d53c57e240832059c43a034a2d7d40d26350ca05ed9468f5eb17b11ad7c487d78e5abb72a1062ac9417b9e01ee45e48133d7caac0c0", + "blockHeader": { + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x5c5af9dcb8db555f1af2b6266ba52a3a394e1ad52b5cca8267ef42167c48be15", + "transactionsTrie": "0x59b133d3794635a7043f7a7826dc0924f752bc73929beb3509fbd22e38f3a41e", + "receiptTrie": "0x0137d25b707ed6f768d807427031584abda32d29bdf30c6dc20e35221b7dee71", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0288f6", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xaadf9c81dd9cf97c4ccad1fbbd270fca7a0a383187bc8f2ec4223acf64da7a7e" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb", + "accessList": [], + "v": "0x01", + "r": "0xf91fb7dc93c1e45a397410e8555d53c57e240832059c43a034a2d7d40d26350c", + "s": "0x5ed9468f5eb17b11ad7c487d78e5abb72a1062ac9417b9e01ee45e48133d7caa", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xaadf9c81dd9cf97c4ccad1fbbd270fca7a0a383187bc8f2ec4223acf64da7a7e", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": { + "0x01": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014", + "0x02": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62", + "0x04": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014", + "0x05": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xffffffffffffee4146", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "058-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_177b58dc7a46b08f": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", + "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, + "blocks": [ + { + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0fcaba0e9e6c6b52ed02c1bc8b48f0cb3ea4a8c85627b43d74b5564f4ba9dcda9a0706b4ad700b9656ba5e879723ec7697ccc6a6dc07752d3c8a7bebf77de1ef05ca0f91c3d227b7dd5018ec562a377541ab822d8b42bb7b9be413107620c7f882e25b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b360c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e386375eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4e97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc080a0f5e4887e5e1f4ce69f241964fb510c9f8a226194ff37c2e06d42ef73900b5412a010fe7a90af6877e317f0b53edc461c33b88a364dd8b9ec5772a728de61b82a25c0c0", + "blockHeader": { + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xfcaba0e9e6c6b52ed02c1bc8b48f0cb3ea4a8c85627b43d74b5564f4ba9dcda9", + "transactionsTrie": "0x706b4ad700b9656ba5e879723ec7697ccc6a6dc07752d3c8a7bebf77de1ef05c", + "receiptTrie": "0xf91c3d227b7dd5018ec562a377541ab822d8b42bb7b9be413107620c7f882e25", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x028b36", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe413da3b48c57fd7809244a84bd66db71393e69c97a8ab2b17f1bce08dd21d12" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e386375eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4e97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb", + "accessList": [], + "v": "0x00", + "r": "0xf5e4887e5e1f4ce69f241964fb510c9f8a226194ff37c2e06d42ef73900b5412", + "s": "0x10fe7a90af6877e317f0b53edc461c33b88a364dd8b9ec5772a728de61b82a25", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xe413da3b48c57fd7809244a84bd66db71393e69c97a8ab2b17f1bce08dd21d12", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": { + "0x01": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e38637", + "0x02": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62", + "0x04": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e38637", + "0x05": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xffffffffffffee3186", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "059-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_1ce8e4f69d5df899": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", + "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, + "blocks": [ + { + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06def9d0ad1414d78220d49fd0dbd96ef29b953c4c3b492c0553d61b00b7e8a39a001c1479a842ee20dba3b2ecc393e48b3118cf90de0351765e50ebec46df61b63a036595bb2d5b0ca60db87f44279ba5dbab354471ad2aa0c19c6641019850ee5bbb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028aee0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000000000000000000000000000000000000000000000000000000000000000000093efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f1465569779b8337f00de6aeac881256198bd2db2fe95bc3127ad9e6440d9e4d1e785b455f55fcfe80a3434dc40f8e6df85be88c001a04667e403b9f9349babcf1c601584e9d5c0f8fe60b61516ef356dd8264afd71eca03f3b808f116b1fe59cc94b16f13a565759a1c64ac46f5390cd025c970d4abab8c0c0", + "blockHeader": { + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x6def9d0ad1414d78220d49fd0dbd96ef29b953c4c3b492c0553d61b00b7e8a39", + "transactionsTrie": "0x01c1479a842ee20dba3b2ecc393e48b3118cf90de0351765e50ebec46df61b63", + "receiptTrie": "0x36595bb2d5b0ca60db87f44279ba5dbab354471ad2aa0c19c6641019850ee5bb", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x028aee", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xf5af3659b136ee9673b4cba23488807bb07d754e8a9eee2df49296d39ea40506" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x01ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000000000000000000000000000000000000000000000000000000000000000000093efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f1465569779b8337f00de6aeac881256198bd2db2fe95bc3127ad9e6440d9e4d1e785b455f55fcfe80a3434dc40f8e6df85be88", + "accessList": [], + "v": "0x01", + "r": "0x4667e403b9f9349babcf1c601584e9d5c0f8fe60b61516ef356dd8264afd71ec", + "s": "0x3f3b808f116b1fe59cc94b16f13a565759a1c64ac46f5390cd025c970d4abab8", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xf5af3659b136ee9673b4cba23488807bb07d754e8a9eee2df49296d39ea40506", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": { + "0x01": "0x01ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef", + "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000", + "0x04": "0x01ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef", + "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xffffffffffffee337e", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "060-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_26b753dec0560daa": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", + "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, + "blocks": [ + { + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e31b37e7efd166a38a47e3cd2a0cc4309474cb222d48465f070e2799f9a01ad7a0327368ccb307f9315b3d6bde7cf9ede667c1cca396904096d5dc8c7bb81c3a1ca0f521defef700cc1dbe52bf6fa2da712b09b13684d78fa9cef3a24ac4e957b0c7b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301ef8e0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef000000000000000000000000000000000000000000000000000000000000000073e66878b46ae3705eb6a46a89213de7d3686828bfce5c19400fffff0010000193efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f14655690f53a4837bbde6ab0838fef0c0be5339ab03a78342c221cf6b2d6e465d01a3d47585a808c9d8d25dee885007deeb107c080a07b78f776e7375a5215e878f719cb37622be31a5407bfaa4542f9ffec24081a58a01ee0c5d868149b759a039cb2fff53ea2b70b41c61a16d2e887ef13b9e916f9ddc0c0", + "blockHeader": { + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xe31b37e7efd166a38a47e3cd2a0cc4309474cb222d48465f070e2799f9a01ad7", + "transactionsTrie": "0x327368ccb307f9315b3d6bde7cf9ede667c1cca396904096d5dc8c7bb81c3a1c", + "receiptTrie": "0xf521defef700cc1dbe52bf6fa2da712b09b13684d78fa9cef3a24ac4e957b0c7", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01ef8e", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x88c8ee45373cb8fdd58e45bb0ef7582bdc6c9b92d398681d8ebeeb8059166e9b" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x01ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef000000000000000000000000000000000000000000000000000000000000000073e66878b46ae3705eb6a46a89213de7d3686828bfce5c19400fffff0010000193efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f14655690f53a4837bbde6ab0838fef0c0be5339ab03a78342c221cf6b2d6e465d01a3d47585a808c9d8d25dee885007deeb107", + "accessList": [], + "v": "0x00", + "r": "0x7b78f776e7375a5215e878f719cb37622be31a5407bfaa4542f9ffec24081a58", + "s": "0x1ee0c5d868149b759a039cb2fff53ea2b70b41c61a16d2e887ef13b9e916f9dd", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x88c8ee45373cb8fdd58e45bb0ef7582bdc6c9b92d398681d8ebeeb8059166e9b", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": { + "0x01": "0x01ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef", + "0x04": "0x01ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xfffffffffffff2731e", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "061-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_2b76dc9e3abf42f3": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", + "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, + "blocks": [ + { + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09429e7ac59df28029f8a855b7d5828ff6427b9cbee52b021fa5fa9cecc27d5bea0f1cb0c9347f73759e25870b0e148e1a5c4380fcd8ccdd03432aa6cbe524a46d2a0c3c65c206583fcf6305a4dd04ddabcfd990686acc213716af1d1f51191a104adb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830289ce0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e3863700000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4e97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc001a0afba91e74b2d8fde6720a6f8b4307fd13161c62f1ecad8a907833c582cb1208ea06398c153f32aa26863ae921c58dc6e8f9e7481fe399a385b235334ffab1e0267c0c0", + "blockHeader": { + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x9429e7ac59df28029f8a855b7d5828ff6427b9cbee52b021fa5fa9cecc27d5be", + "transactionsTrie": "0xf1cb0c9347f73759e25870b0e148e1a5c4380fcd8ccdd03432aa6cbe524a46d2", + "receiptTrie": "0xc3c65c206583fcf6305a4dd04ddabcfd990686acc213716af1d1f51191a104ad", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0289ce", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa781a00cd99309c850001db11794c6c953434ebf9c766381f68558d7e64c10b2" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e3863700000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4e97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb", + "accessList": [], + "v": "0x01", + "r": "0xafba91e74b2d8fde6720a6f8b4307fd13161c62f1ecad8a907833c582cb1208e", + "s": "0x6398c153f32aa26863ae921c58dc6e8f9e7481fe399a385b235334ffab1e0267", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xa781a00cd99309c850001db11794c6c953434ebf9c766381f68558d7e64c10b2", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": { + "0x01": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e38637", + "0x02": "0x01", + "0x04": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e38637", + "0x05": "0x01" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xffffffffffffee3b5e", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "062-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_31ebd010e6098750": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", + "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, + "blocks": [ + { + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06e4259768907803f444f41968be7cd43ce94a09e851e4464eb51712463320017a031ed5b16801e076fd201ad17bf100b3796b25848cc7b4a758297128eab3e9736a0274957ba64edf860e8f2e23aaecc40d94ffab82273d69fc1d8bfecd6724434b6b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028c860c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000001522a4a7f34e1ea350ae07c29c96c7e79655aa926122e95fe69fcbd932ca49e98f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b9b65c2ebc89e669cf19e82fb178f0d1e9c958edbebe9ead62e97e95e2dcdc4972729fb9661f0cae3532b71b2664a8c1c001a0b86399bbb8f067bd98625e32eae7f4a66ba16d099422e5a32ec5b1387ecc631ca0616335ec00e6632fc44c192dcd15f38ccd3432e8465f04e895964daf645a9e6fc0c0", + "blockHeader": { + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x6e4259768907803f444f41968be7cd43ce94a09e851e4464eb51712463320017", + "transactionsTrie": "0x31ed5b16801e076fd201ad17bf100b3796b25848cc7b4a758297128eab3e9736", + "receiptTrie": "0x274957ba64edf860e8f2e23aaecc40d94ffab82273d69fc1d8bfecd6724434b6", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x028c86", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x39eecb29e875267c94781ff204e49aa8beb955c965511e0404459cc4cf48223e" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000001522a4a7f34e1ea350ae07c29c96c7e79655aa926122e95fe69fcbd932ca49e98f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b9b65c2ebc89e669cf19e82fb178f0d1e9c958edbebe9ead62e97e95e2dcdc4972729fb9661f0cae3532b71b2664a8c1", + "accessList": [], + "v": "0x01", + "r": "0xb86399bbb8f067bd98625e32eae7f4a66ba16d099422e5a32ec5b1387ecc631c", + "s": "0x616335ec00e6632fc44c192dcd15f38ccd3432e8465f04e895964daf645a9e6f", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x39eecb29e875267c94781ff204e49aa8beb955c965511e0404459cc4cf48223e", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": { + "0x01": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b", + "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000", + "0x04": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b", + "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xffffffffffffee2856", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "063-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_3208425794224c3f": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", + "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, + "blocks": [ + { + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06e87773a08f8c44ef60f7898cd7f2ca9fce264b2b52719ad25510ddb4c31f7bca0205437291c8e84cf67c9f9401eb82e108a0e317929c0b9debc4f3ae42d726803a0cd5198e7bb94cb328dee8f6d5b1c67c93cbefde9ed36fc23a528d3999b175a6ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830289020c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363060000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc001a07b00950cae46ca7dddd42071e9d1a802d65ceacaf5c214ea7b512d1a87acab91a02702113e47c769a2e58b09d34a6276ce3af5c31a516b578927aed109be75efc8c0c0", + "blockHeader": { + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x6e87773a08f8c44ef60f7898cd7f2ca9fce264b2b52719ad25510ddb4c31f7bc", + "transactionsTrie": "0x205437291c8e84cf67c9f9401eb82e108a0e317929c0b9debc4f3ae42d726803", + "receiptTrie": "0xcd5198e7bb94cb328dee8f6d5b1c67c93cbefde9ed36fc23a528d3999b175a6a", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x028902", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x3a248ed15469adbdef1a0b9e4f0e400c0eb1d5d0314fb1c3259dbdfa97465ad9" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363060000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb", + "accessList": [], + "v": "0x01", + "r": "0x7b00950cae46ca7dddd42071e9d1a802d65ceacaf5c214ea7b512d1a87acab91", + "s": "0x2702113e47c769a2e58b09d34a6276ce3af5c31a516b578927aed109be75efc8", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x3a248ed15469adbdef1a0b9e4f0e400c0eb1d5d0314fb1c3259dbdfa97465ad9", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": { + "0x01": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014", + "0x02": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306", + "0x04": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014", + "0x05": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xffffffffffffee40f2", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "064-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_36817bfd67de97a8": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", + "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, + "blocks": [ + { + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0dda1f9159556121e66cd02e004631ec49b7038a279d4d70cfba505e83425af9aa02d53b4e174b17f7935bd731e76f8c46e7dd22b4cb42f3851e6514ed31d7e9980a0f521defef700cc1dbe52bf6fa2da712b09b13684d78fa9cef3a24ac4e957b0c7b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301ef8e0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc001a063ffad823cb44d2b1681b052aa1a1c5550a5649cf6f656a2ddd3d8bbeda00629a00656fc4928d944dbb9b9c25c6c31ed336de7b7295f4ab5b3ae781a74628bf38fc0c0", + "blockHeader": { + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xdda1f9159556121e66cd02e004631ec49b7038a279d4d70cfba505e83425af9a", + "transactionsTrie": "0x2d53b4e174b17f7935bd731e76f8c46e7dd22b4cb42f3851e6514ed31d7e9980", + "receiptTrie": "0xf521defef700cc1dbe52bf6fa2da712b09b13684d78fa9cef3a24ac4e957b0c7", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01ef8e", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x795c35516a954acd112950c0ac68995946a3f1dc097971fd3cbc9d829770f72b" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb", + "accessList": [], + "v": "0x01", + "r": "0x63ffad823cb44d2b1681b052aa1a1c5550a5649cf6f656a2ddd3d8bbeda00629", + "s": "0x0656fc4928d944dbb9b9c25c6c31ed336de7b7295f4ab5b3ae781a74628bf38f", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x795c35516a954acd112950c0ac68995946a3f1dc097971fd3cbc9d829770f72b", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": { + "0x01": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", + "0x04": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xfffffffffffff2731e", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "065-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_392169c16a2e5ef6": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", + "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, + "blocks": [ + { + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ba8c269b2a19e3608f3fd4d09f23cb33c06ca68d03b3c4a07a918f7c024aecada01d32d6ddadd17afd9016df4ed386d5960b3132964e575b909398229cf0b540e3a06ac4d31628e4cf708bb4bcdb44386bb20f55b55797f7b99afd3f3bfd0c1d2cbdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028c4a0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000304962b3598a0adf33189fdfd9789feab1096ff40006900400000003fffffffca421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06b08a5afbb1717334e08e05576b07bff58e8851d8cfd9ea71da1ab4233ad4217cffabd669dfa89c3ebf4c44f91694a2f4c080a051a8ecabbd377c69896eefaf1dd4dfe9fa9c9530d93ae9a680cf5bda84ee627ba0731da720547d59f22378597d07dcf4f7ca90a80a91e749b6bc95175004a72ba7c0c0", + "blockHeader": { + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xba8c269b2a19e3608f3fd4d09f23cb33c06ca68d03b3c4a07a918f7c024aecad", + "transactionsTrie": "0x1d32d6ddadd17afd9016df4ed386d5960b3132964e575b909398229cf0b540e3", + "receiptTrie": "0x6ac4d31628e4cf708bb4bcdb44386bb20f55b55797f7b99afd3f3bfd0c1d2cbd", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x028c4a", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xda1bb2777e9f329fdb55082922f142ae55bfa0d1ffe0ca298f1c040a7b46ec01" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000304962b3598a0adf33189fdfd9789feab1096ff40006900400000003fffffffca421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06b08a5afbb1717334e08e05576b07bff58e8851d8cfd9ea71da1ab4233ad4217cffabd669dfa89c3ebf4c44f91694a2f4", + "accessList": [], + "v": "0x00", + "r": "0x51a8ecabbd377c69896eefaf1dd4dfe9fa9c9530d93ae9a680cf5bda84ee627b", + "s": "0x731da720547d59f22378597d07dcf4f7ca90a80a91e749b6bc95175004a72ba7", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xda1bb2777e9f329fdb55082922f142ae55bfa0d1ffe0ca298f1c040a7b46ec01", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": { + "0x01": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1", + "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000", + "0x04": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1", + "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xffffffffffffee29fa", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "066-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_395cf6d697d1a743": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", + "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, + "blocks": [ + { + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0299c5b530200b11d96ef2e2ecabf80996751ad88becd73c8e67419ca60acce1ba026137c7a0a83c44a82cbbba0cd3a3426a781c171631723143d511240c5ca5602a04e8d678e548e6c41a056eb0927bbc3e4d80e564d9d674fea8bbc1783049e898ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b120c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e3863773eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000000000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4e97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc001a00edc24906c0d89c890a0cf653889e60575cc48709b3227d3d8bf9c57a8d32c42a01cf77a2f5521b8ed5c0a73a053b700df4d5c016582ed1b8a860513aa0149a6b9c0c0", + "blockHeader": { + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x299c5b530200b11d96ef2e2ecabf80996751ad88becd73c8e67419ca60acce1b", + "transactionsTrie": "0x26137c7a0a83c44a82cbbba0cd3a3426a781c171631723143d511240c5ca5602", + "receiptTrie": "0x4e8d678e548e6c41a056eb0927bbc3e4d80e564d9d674fea8bbc1783049e898a", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x028b12", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x74e52ba457f703d775a4ab85909ca078c04f95377230044767e836ab70e005e0" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e3863773eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000000000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4e97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb", + "accessList": [], + "v": "0x01", + "r": "0x0edc24906c0d89c890a0cf653889e60575cc48709b3227d3d8bf9c57a8d32c42", + "s": "0x1cf77a2f5521b8ed5c0a73a053b700df4d5c016582ed1b8a860513aa0149a6b9", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x74e52ba457f703d775a4ab85909ca078c04f95377230044767e836ab70e005e0", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": { + "0x01": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e38637", + "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000", + "0x04": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e38637", + "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xffffffffffffee3282", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "067-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_3ac8dc31e9aa6a70": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", + "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, + "blocks": [ + { + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa022029c17ab92f037e59e0ba8ec64e912c412700b2c15cc6eeb2e644f70e61bdda040fa52183610ba4bcd5e403a72033079377413bd8f69a04421e0093b3e1aed36a04f151812b62aa8eff6f2c553aba828d87c739a8453016ed9ad095a5ec5044ec9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830288d20c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401473eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc001a0d59e9b6c29a6d864bba86e554f74eeb8211ecdd35213e65d365b60d84f24d711a044695d5189a953a40af706a9770fdc2c1e72b3153e2b8a251d431bc54bf20ad1c0c0", + "blockHeader": { + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x22029c17ab92f037e59e0ba8ec64e912c412700b2c15cc6eeb2e644f70e61bdd", + "transactionsTrie": "0x40fa52183610ba4bcd5e403a72033079377413bd8f69a04421e0093b3e1aed36", + "receiptTrie": "0x4f151812b62aa8eff6f2c553aba828d87c739a8453016ed9ad095a5ec5044ec9", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0288d2", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x3b793c97e7cf41ffd4ab376fbc35aec0b1aa43703d86887f8248dc9e078d7ce2" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401473eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb", + "accessList": [], + "v": "0x01", + "r": "0xd59e9b6c29a6d864bba86e554f74eeb8211ecdd35213e65d365b60d84f24d711", + "s": "0x44695d5189a953a40af706a9770fdc2c1e72b3153e2b8a251d431bc54bf20ad1", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x3b793c97e7cf41ffd4ab376fbc35aec0b1aa43703d86887f8248dc9e078d7ce2", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": { + "0x01": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014", + "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000", + "0x04": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014", + "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xffffffffffffee4242", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "068-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_3c1e8b38219e3e12": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", + "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, + "blocks": [ + { + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07e4d76ac2b0df15645c3571bc7e7f52eeb67931608821360c7ad00841cdeb843a022e3736e7714f6520883f48744fe62b864a0198b546b7fde17d8225771051068a015a792a3e4a2a7bf4e5203d28c75ccc9a1e08c1c67baa29ce3a1185c584b55e2b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301efb20c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1000000000000000000000000000000000000000000000000000000000000000050625ad853cc21ba40594f79591e5d35c445ecf9453014da6524c0cf6367c359a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d0690559bfd8e58f5d144588a1a959c93aba58607777e09893f088e404eb2dc47c0269ed8e47c1be79ea07ae726abd921a8c001a0c69dba776ee7fc0ff07d22a68e8f77c8c4f7a695718d46492f46a850fe230ac8a052f857bee68427dd67b549d740d256b27c58000781c2b7094e1fb5d59df074a5c0c0", + "blockHeader": { + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x7e4d76ac2b0df15645c3571bc7e7f52eeb67931608821360c7ad00841cdeb843", + "transactionsTrie": "0x22e3736e7714f6520883f48744fe62b864a0198b546b7fde17d8225771051068", + "receiptTrie": "0x15a792a3e4a2a7bf4e5203d28c75ccc9a1e08c1c67baa29ce3a1185c584b55e2", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01efb2", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x7efe244e361cce42aec862a1fc202dcf43c59e2aa6d683871fb736a4be996808" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1000000000000000000000000000000000000000000000000000000000000000050625ad853cc21ba40594f79591e5d35c445ecf9453014da6524c0cf6367c359a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d0690559bfd8e58f5d144588a1a959c93aba58607777e09893f088e404eb2dc47c0269ed8e47c1be79ea07ae726abd921a8", + "accessList": [], + "v": "0x01", + "r": "0xc69dba776ee7fc0ff07d22a68e8f77c8c4f7a695718d46492f46a850fe230ac8", + "s": "0x52f857bee68427dd67b549d740d256b27c58000781c2b7094e1fb5d59df074a5", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x7efe244e361cce42aec862a1fc202dcf43c59e2aa6d683871fb736a4be996808", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": { + "0x01": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1", + "0x04": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xfffffffffffff27222", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "069-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_3c87ec986c2656c2": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", + "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, + "blocks": [ + { + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06241a15c2149162920c03d1fa9437a584b091e0cef0c7886b94c359410c0bcb8a0e3163457bd43bb4bf5bd15effc030781b0e413b8029057ad42857d61b412238ca08b7c217608f6432544e6a1adc0d96e91ba07f23c82941754aaf9783f4b89de84b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028caa0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363066d928e13fe443e957d82e3e71d48cb65d51028eb4483e719bf8efcdf12f7c321a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d068d72dc4eec977090f452b412a6b0a3cdced2ea6b622ebb6e289c7e05d85cc715b93eca244123c84a60b3ecbf33373903c080a0af068027110a9a1b3a0edbc32d0f5f03df92826848631eb0ee5d267e09a93973a003e93ae2f5ee3fcb798537a2bcff0513c4730f14ae889dcf5848d63af12c1542c0c0", + "blockHeader": { + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x6241a15c2149162920c03d1fa9437a584b091e0cef0c7886b94c359410c0bcb8", + "transactionsTrie": "0xe3163457bd43bb4bf5bd15effc030781b0e413b8029057ad42857d61b412238c", + "receiptTrie": "0x8b7c217608f6432544e6a1adc0d96e91ba07f23c82941754aaf9783f4b89de84", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x028caa", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xc202486b5aaf3f2f775caeb216a4d5e642e54069b68dff0aed40c47f4d4d0310" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363066d928e13fe443e957d82e3e71d48cb65d51028eb4483e719bf8efcdf12f7c321a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d068d72dc4eec977090f452b412a6b0a3cdced2ea6b622ebb6e289c7e05d85cc715b93eca244123c84a60b3ecbf33373903", + "accessList": [], + "v": "0x00", + "r": "0xaf068027110a9a1b3a0edbc32d0f5f03df92826848631eb0ee5d267e09a93973", + "s": "0x03e93ae2f5ee3fcb798537a2bcff0513c4730f14ae889dcf5848d63af12c1542", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xc202486b5aaf3f2f775caeb216a4d5e642e54069b68dff0aed40c47f4d4d0310", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": { + "0x01": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1", + "0x02": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306", + "0x04": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1", + "0x05": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xffffffffffffee275a", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "070-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_3cd183d0bab85fb7": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", + "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, + "blocks": [ + { + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f11f417e8bae34179422999fe7455f99f02d51e30f5e10071f220cc0493385c9a08d8dc27e5c2ab3d3bfc91a2176e8bd06180bbe166b9dfc319caba700bc4b8f0fa04e8d678e548e6c41a056eb0927bbc3e4d80e564d9d674fea8bbc1783049e898ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b120c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc080a0f544a23c3fb57a08592ceb891725e3b767ad575036ddf788b3371625630d2bc1a013b4537a9c47802808e089894d50f079a44480c6c357ba6f903c51786dbd5729c0c0", + "blockHeader": { + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf11f417e8bae34179422999fe7455f99f02d51e30f5e10071f220cc0493385c9", + "transactionsTrie": "0x8d8dc27e5c2ab3d3bfc91a2176e8bd06180bbe166b9dfc319caba700bc4b8f0f", + "receiptTrie": "0x4e8d678e548e6c41a056eb0927bbc3e4d80e564d9d674fea8bbc1783049e898a", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x028b12", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -5326,7 +9256,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x0080469e05930d50f3099afcc6062d95659e08ed92cd0b9e984c8daeaad38a6b" + "hash": "0x891b49a6e9dee5146ee52cc39214aaf0859d66e8389dd04c270240b32eb52e93" }, "blocknumber": "1", "transactions": [ @@ -5339,11 +9269,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5000000000000000000000000000000000000000000000000000000000000000073e66878b46ae3705eb6a46a89213de7d3686828bfce5c19400fffff00100001b09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440ef83bdb1c6f172d8e30a58533d4df96d9133b7ee293ae76777d60454cb35ef28f08634a794dc098baa22499347ab9a00db", + "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb", "accessList": [], - "v": "0x01", - "r": "0x4e4d3b0553b0ce6f210dd5b7729abd38c8bfb0a79e2dd75ade44837a02f8b699", - "s": "0x28a151bb6e7fb9e7c0960dca0ff2433fa92f30af940e3a3162d2ddf36c0d8317", + "v": "0x00", + "r": "0xf544a23c3fb57a08592ceb891725e3b767ad575036ddf788b3371625630d2bc1", + "s": "0x13b4537a9c47802808e089894d50f079a44480c6c357ba6f903c51786dbd5729", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -5351,7 +9281,7 @@ "withdrawals": [] } ], - "lastblockhash": "0x0080469e05930d50f3099afcc6062d95659e08ed92cd0b9e984c8daeaad38a6b", + "lastblockhash": "0x891b49a6e9dee5146ee52cc39214aaf0859d66e8389dd04c270240b32eb52e93", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -5378,8 +9308,10 @@ "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5", - "0x04": "0x01d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5" + "0x01": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", + "0x02": "0x01", + "0x04": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", + "0x05": "0x01" } }, "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { @@ -5392,16 +9324,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xfffffffffffff2731e", + "balance": "0xffffffffffffee3282", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "041-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_31ebd010e6098750": { + "071-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_420f2a187ce77035": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -5432,19 +9364,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05cc18365cae8b88097a2722db2a410ec6fe0efdcd7745c07c048b5ab0f5f2c9aa016e366da44ee70919f94af4fba55fec79c21429b6a9a06da898265fbb4ee561ca0274957ba64edf860e8f2e23aaecc40d94ffab82273d69fc1d8bfecd6724434b6b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028c860c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000001522a4a7f34e1ea350ae07c29c96c7e79655aa926122e95fe69fcbd932ca49e9978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d16568756548069418eb9a7cf2fa71125962f6662afeac10a7f1bbe26365995b13f6840946da49f79c7dfdd80b5b8a50bf44758cd2a96dc080a077bca430e29f42ee9fcf1bd0bb97c0cbd8aa51ab3d742a52225b54a10daecf59a005a3ff3f93541e45ee480e9561a3b5d258a4b794ceb886283c60feb42d7b29dcc0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa056164955e64cd598a56f6fdf5963af909fe75c843b88177a591ccfedec7be414a03e4c33039985eb4cd95f351f90afbf4debb2c72837827bf11b671b48889288a4a0f91c3d227b7dd5018ec562a377541ab822d8b42bb7b9be413107620c7f882e25b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b360c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f100000000000000000000000000000000000000000000000000000000000000022bf4e1f980eb94661a21affc4d7e6e56f214fe3e7dc4d20b98c66ffd43cabeb0a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d0699c282db3a79a9ec1553306515e6a71dc43df1ddbd1dbd9d5b71f3c1798ef482f5e1fd84500b0e47c82f72a189ecd526c080a061e86dce798f049f3daa21f7121bceb8fbefe76ae92ac372cf77e84fdc97ca70a02d3166503ca948988089c8337198ddc63f92bfd9930c718494550f90e1bd4291c0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5cc18365cae8b88097a2722db2a410ec6fe0efdcd7745c07c048b5ab0f5f2c9a", - "transactionsTrie": "0x16e366da44ee70919f94af4fba55fec79c21429b6a9a06da898265fbb4ee561c", - "receiptTrie": "0x274957ba64edf860e8f2e23aaecc40d94ffab82273d69fc1d8bfecd6724434b6", + "stateRoot": "0x56164955e64cd598a56f6fdf5963af909fe75c843b88177a591ccfedec7be414", + "transactionsTrie": "0x3e4c33039985eb4cd95f351f90afbf4debb2c72837827bf11b671b48889288a4", + "receiptTrie": "0xf91c3d227b7dd5018ec562a377541ab822d8b42bb7b9be413107620c7f882e25", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x028c86", + "gasUsed": "0x028b36", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -5454,7 +9386,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xbefcca172421fb5887ba7d576c54419b9b2f7518bf5e88389dd31409e31d9c62" + "hash": "0x4eee5677efbb90149fb01702b062eec73f36d16cf950e2ee93e96ec499a11664" }, "blocknumber": "1", "transactions": [ @@ -5467,11 +9399,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000001522a4a7f34e1ea350ae07c29c96c7e79655aa926122e95fe69fcbd932ca49e9978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d16568756548069418eb9a7cf2fa71125962f6662afeac10a7f1bbe26365995b13f6840946da49f79c7dfdd80b5b8a50bf44758cd2a96d", + "data": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f100000000000000000000000000000000000000000000000000000000000000022bf4e1f980eb94661a21affc4d7e6e56f214fe3e7dc4d20b98c66ffd43cabeb0a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d0699c282db3a79a9ec1553306515e6a71dc43df1ddbd1dbd9d5b71f3c1798ef482f5e1fd84500b0e47c82f72a189ecd526", "accessList": [], "v": "0x00", - "r": "0x77bca430e29f42ee9fcf1bd0bb97c0cbd8aa51ab3d742a52225b54a10daecf59", - "s": "0x05a3ff3f93541e45ee480e9561a3b5d258a4b794ceb886283c60feb42d7b29dc", + "r": "0x61e86dce798f049f3daa21f7121bceb8fbefe76ae92ac372cf77e84fdc97ca70", + "s": "0x2d3166503ca948988089c8337198ddc63f92bfd9930c718494550f90e1bd4291", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -5479,7 +9411,7 @@ "withdrawals": [] } ], - "lastblockhash": "0xbefcca172421fb5887ba7d576c54419b9b2f7518bf5e88389dd31409e31d9c62", + "lastblockhash": "0x4eee5677efbb90149fb01702b062eec73f36d16cf950e2ee93e96ec499a11664", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -5506,10 +9438,10 @@ "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb", - "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000", - "0x04": "0x01d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb", - "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000" + "0x01": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1", + "0x02": "0x02", + "0x04": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1", + "0x05": "0x02" } }, "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { @@ -5522,16 +9454,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee2856", + "balance": "0xffffffffffffee3186", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "042-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_3208425794224c3f": { + "072-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_444b73ff54a19b44": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -5562,19 +9494,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06e87773a08f8c44ef60f7898cd7f2ca9fce264b2b52719ad25510ddb4c31f7bca0205437291c8e84cf67c9f9401eb82e108a0e317929c0b9debc4f3ae42d726803a0cd5198e7bb94cb328dee8f6d5b1c67c93cbefde9ed36fc23a528d3999b175a6ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830289020c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363060000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc001a07b00950cae46ca7dddd42071e9d1a802d65ceacaf5c214ea7b512d1a87acab91a02702113e47c769a2e58b09d34a6276ce3af5c31a516b578927aed109be75efc8c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0aae4765ea23fd258c9029e07b3a595ea46d696a4e078f103ab53e47740efb427a0a0e8d19a40519a4f277d0f4d4b7962b52451e385473436a3ad5914c92491736ca00854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b420c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e0000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd51b49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193aa7de1e32bb336b85e42ff5028167042188317299333f091dd88675e84a550577bfa564b2f57cd2498e2acf875e0aaa40c080a0e838bc6da93976ed68fc58ec34849bdba4354e6da426878704c0c1b3ba9c5c5ca07ea0ef8fb9bf87cdb0ad50de6cef1036b6a7cdbbfbe4d5a4578b22eac52e3f0fc0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x6e87773a08f8c44ef60f7898cd7f2ca9fce264b2b52719ad25510ddb4c31f7bc", - "transactionsTrie": "0x205437291c8e84cf67c9f9401eb82e108a0e317929c0b9debc4f3ae42d726803", - "receiptTrie": "0xcd5198e7bb94cb328dee8f6d5b1c67c93cbefde9ed36fc23a528d3999b175a6a", + "stateRoot": "0xaae4765ea23fd258c9029e07b3a595ea46d696a4e078f103ab53e47740efb427", + "transactionsTrie": "0xa0e8d19a40519a4f277d0f4d4b7962b52451e385473436a3ad5914c92491736c", + "receiptTrie": "0x0854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x028902", + "gasUsed": "0x028b42", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -5584,7 +9516,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x3a248ed15469adbdef1a0b9e4f0e400c0eb1d5d0314fb1c3259dbdfa97465ad9" + "hash": "0x16073147d8938eb28e4cd85ebf8d2bfa5fd40ed95c2a212c65d4cd2eeebd8347" }, "blocknumber": "1", "transactions": [ @@ -5597,11 +9529,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363060000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb", + "data": "0x01228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e0000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd51b49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193aa7de1e32bb336b85e42ff5028167042188317299333f091dd88675e84a550577bfa564b2f57cd2498e2acf875e0aaa40", "accessList": [], - "v": "0x01", - "r": "0x7b00950cae46ca7dddd42071e9d1a802d65ceacaf5c214ea7b512d1a87acab91", - "s": "0x2702113e47c769a2e58b09d34a6276ce3af5c31a516b578927aed109be75efc8", + "v": "0x00", + "r": "0xe838bc6da93976ed68fc58ec34849bdba4354e6da426878704c0c1b3ba9c5c5c", + "s": "0x7ea0ef8fb9bf87cdb0ad50de6cef1036b6a7cdbbfbe4d5a4578b22eac52e3f0f", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -5609,7 +9541,7 @@ "withdrawals": [] } ], - "lastblockhash": "0x3a248ed15469adbdef1a0b9e4f0e400c0eb1d5d0314fb1c3259dbdfa97465ad9", + "lastblockhash": "0x16073147d8938eb28e4cd85ebf8d2bfa5fd40ed95c2a212c65d4cd2eeebd8347", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -5636,10 +9568,10 @@ "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014", - "0x02": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306", - "0x04": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014", - "0x05": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306" + "0x01": "0x01228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e", + "0x02": "0x01", + "0x04": "0x01228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e", + "0x05": "0x01" } }, "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { @@ -5652,16 +9584,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee40f2", + "balance": "0xffffffffffffee3132", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "043-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_36817bfd67de97a8": { + "073-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_53a9bdf4f75196da": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -5692,19 +9624,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0dda1f9159556121e66cd02e004631ec49b7038a279d4d70cfba505e83425af9aa02d53b4e174b17f7935bd731e76f8c46e7dd22b4cb42f3851e6514ed31d7e9980a0f521defef700cc1dbe52bf6fa2da712b09b13684d78fa9cef3a24ac4e957b0c7b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301ef8e0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc001a063ffad823cb44d2b1681b052aa1a1c5550a5649cf6f656a2ddd3d8bbeda00629a00656fc4928d944dbb9b9c25c6c31ed336de7b7295f4ab5b3ae781a74628bf38fc0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa078d747da9de7ebbee4ee9a946d030d50490e82afc073f5061b9ea13a9c79a0a7a09d65db0c1d55cbe078ed658fc3aa400c9629ed9fae334c80c1b69788a763cb63a0274957ba64edf860e8f2e23aaecc40d94ffab82273d69fc1d8bfecd6724434b6b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028c860c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d3630673eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc001a0a2e5fd2288f89860236f9e7c6f98eba4de7dbaee1c3521e805b33fd3f8e935aaa020cae692d1a23b0cfb422af34e238b1792e2bc38bdcc816c86ab692ea6618ab3c0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xdda1f9159556121e66cd02e004631ec49b7038a279d4d70cfba505e83425af9a", - "transactionsTrie": "0x2d53b4e174b17f7935bd731e76f8c46e7dd22b4cb42f3851e6514ed31d7e9980", - "receiptTrie": "0xf521defef700cc1dbe52bf6fa2da712b09b13684d78fa9cef3a24ac4e957b0c7", + "stateRoot": "0x78d747da9de7ebbee4ee9a946d030d50490e82afc073f5061b9ea13a9c79a0a7", + "transactionsTrie": "0x9d65db0c1d55cbe078ed658fc3aa400c9629ed9fae334c80c1b69788a763cb63", + "receiptTrie": "0x274957ba64edf860e8f2e23aaecc40d94ffab82273d69fc1d8bfecd6724434b6", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x01ef8e", + "gasUsed": "0x028c86", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -5714,7 +9646,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x795c35516a954acd112950c0ac68995946a3f1dc097971fd3cbc9d829770f72b" + "hash": "0x02d19ba523b823f30262596ba1811ea38c5af4f75403dc0bb00aad8b57e41263" }, "blocknumber": "1", "transactions": [ @@ -5727,11 +9659,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb", + "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d3630673eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb", "accessList": [], "v": "0x01", - "r": "0x63ffad823cb44d2b1681b052aa1a1c5550a5649cf6f656a2ddd3d8bbeda00629", - "s": "0x0656fc4928d944dbb9b9c25c6c31ed336de7b7295f4ab5b3ae781a74628bf38f", + "r": "0xa2e5fd2288f89860236f9e7c6f98eba4de7dbaee1c3521e805b33fd3f8e935aa", + "s": "0x20cae692d1a23b0cfb422af34e238b1792e2bc38bdcc816c86ab692ea6618ab3", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -5739,7 +9671,7 @@ "withdrawals": [] } ], - "lastblockhash": "0x795c35516a954acd112950c0ac68995946a3f1dc097971fd3cbc9d829770f72b", + "lastblockhash": "0x02d19ba523b823f30262596ba1811ea38c5af4f75403dc0bb00aad8b57e41263", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -5767,7 +9699,9 @@ "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { "0x01": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", - "0x04": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0" + "0x02": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306", + "0x04": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", + "0x05": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306" } }, "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { @@ -5780,16 +9714,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xfffffffffffff2731e", + "balance": "0xffffffffffffee2856", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "044-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_392169c16a2e5ef6": { + "074-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_585454b31673dd62": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -5820,19 +9754,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0692bb601a989053cad1f851fd98ba01bc6afc7c87f11d4fc2283af7e9d242458a01135f23b1017406399e3a232f6d305578d7e81011a890c95f7e965496d328319a083f1c2472613f4662d5c53d4a072c8494e1b1885b48d55c40c2655e5c8b52decb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028c560c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000304962b3598a0adf33189fdfd9789feab1096ff40006900400000003fffffffc991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c981b26a6f4606710d329c8977ba35d907358aa9a4cc288ff6e4be5f251cab25118f206b22d030b6c2aa82444d1accc73cc001a0e4c7d1f35c41466d04ecb67f27e34fca0a34133fd161532be2336908cbd32b5aa060f26c309a100b0bc5d9ff09f57e1da7829afc0de175bf7e2ddecba3a5399fa8c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa08992a363366498252008e0a40a192808c63f3189584701084b1446bcd2ffa883a0052c9d9f520ab6ab07860f7febf09202053dba23a6cbbef0f78a15a4a7b6c697a0749032247246bcdf2492dea7e7ef5b1105456aff8ad398d97bc96f6fc940b88ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301ee4a0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e3863700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4e97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc080a0077feb8e62d60659f7cf3e1c36536812e6218a3db1cc00c45fc3b2b19a5e560fa05ecfbc251e54d486a7c24ad00828f0a2c598ec458b2843d8c5bd8b6cb9579d14c0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x692bb601a989053cad1f851fd98ba01bc6afc7c87f11d4fc2283af7e9d242458", - "transactionsTrie": "0x1135f23b1017406399e3a232f6d305578d7e81011a890c95f7e965496d328319", - "receiptTrie": "0x83f1c2472613f4662d5c53d4a072c8494e1b1885b48d55c40c2655e5c8b52dec", + "stateRoot": "0x8992a363366498252008e0a40a192808c63f3189584701084b1446bcd2ffa883", + "transactionsTrie": "0x052c9d9f520ab6ab07860f7febf09202053dba23a6cbbef0f78a15a4a7b6c697", + "receiptTrie": "0x749032247246bcdf2492dea7e7ef5b1105456aff8ad398d97bc96f6fc940b88a", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x028c56", + "gasUsed": "0x01ee4a", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -5842,7 +9776,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1574846a13001633d478f189a63612a8dbb6ac2c43e2b1c116332fef2a1d48d6" + "hash": "0x531806dc481358b4241cba942a7e7a7125cbb813b86f2b2b09a7539cff8373c7" }, "blocknumber": "1", "transactions": [ @@ -5855,11 +9789,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000304962b3598a0adf33189fdfd9789feab1096ff40006900400000003fffffffc991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c981b26a6f4606710d329c8977ba35d907358aa9a4cc288ff6e4be5f251cab25118f206b22d030b6c2aa82444d1accc73c", + "data": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e3863700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4e97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb", "accessList": [], - "v": "0x01", - "r": "0xe4c7d1f35c41466d04ecb67f27e34fca0a34133fd161532be2336908cbd32b5a", - "s": "0x60f26c309a100b0bc5d9ff09f57e1da7829afc0de175bf7e2ddecba3a5399fa8", + "v": "0x00", + "r": "0x077feb8e62d60659f7cf3e1c36536812e6218a3db1cc00c45fc3b2b19a5e560f", + "s": "0x5ecfbc251e54d486a7c24ad00828f0a2c598ec458b2843d8c5bd8b6cb9579d14", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -5867,7 +9801,7 @@ "withdrawals": [] } ], - "lastblockhash": "0x1574846a13001633d478f189a63612a8dbb6ac2c43e2b1c116332fef2a1d48d6", + "lastblockhash": "0x531806dc481358b4241cba942a7e7a7125cbb813b86f2b2b09a7539cff8373c7", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -5894,10 +9828,8 @@ "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff", - "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000", - "0x04": "0x010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff", - "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000" + "0x01": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e38637", + "0x04": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e38637" } }, "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { @@ -5910,16 +9842,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee29a6", + "balance": "0xfffffffffffff27bfa", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "045-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_3ac8dc31e9aa6a70": { + "075-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_7db4f140a955dd1a": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -5950,19 +9882,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa022029c17ab92f037e59e0ba8ec64e912c412700b2c15cc6eeb2e644f70e61bdda040fa52183610ba4bcd5e403a72033079377413bd8f69a04421e0093b3e1aed36a04f151812b62aa8eff6f2c553aba828d87c739a8453016ed9ad095a5ec5044ec9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830288d20c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401473eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc001a0d59e9b6c29a6d864bba86e554f74eeb8211ecdd35213e65d365b60d84f24d711a044695d5189a953a40af706a9770fdc2c1e72b3153e2b8a251d431bc54bf20ad1c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0074375b4e26cb4890811c8636d0b2089d16b8245bc87947284d72833bf12fdf8a09245dc33b6e0a0c509f1b5bdf5c19bd155f8cac6073b6d0145d08b27de9920e7a0274957ba64edf860e8f2e23aaecc40d94ffab82273d69fc1d8bfecd6724434b6b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028c860c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000058cdc98c4c44791bb8ba7e58a80324ef8c021c79c68e253c430fa2663188f7f2b49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193ab0ac600174134691bf9d91fee448b4d58c127356567da1c456b9c38468909d4effe6b7faa11177e1f96ee5d2834df001c001a0a86d998ae0119a44401fa600566292d72a11f152a1191ab72d3cf3a6ca9fb1f6a07169941cc11fd5f2d59d4f0c2e502284963004b431ca9d7a6795ae6d7b2d6f63c0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x22029c17ab92f037e59e0ba8ec64e912c412700b2c15cc6eeb2e644f70e61bdd", - "transactionsTrie": "0x40fa52183610ba4bcd5e403a72033079377413bd8f69a04421e0093b3e1aed36", - "receiptTrie": "0x4f151812b62aa8eff6f2c553aba828d87c739a8453016ed9ad095a5ec5044ec9", + "stateRoot": "0x074375b4e26cb4890811c8636d0b2089d16b8245bc87947284d72833bf12fdf8", + "transactionsTrie": "0x9245dc33b6e0a0c509f1b5bdf5c19bd155f8cac6073b6d0145d08b27de9920e7", + "receiptTrie": "0x274957ba64edf860e8f2e23aaecc40d94ffab82273d69fc1d8bfecd6724434b6", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x0288d2", + "gasUsed": "0x028c86", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -5972,7 +9904,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x3b793c97e7cf41ffd4ab376fbc35aec0b1aa43703d86887f8248dc9e078d7ce2" + "hash": "0xb8bfdd892d2a24d678e3fcb28f49b561fe995ef60dc0e59843621f9394055b92" }, "blocknumber": "1", "transactions": [ @@ -5985,11 +9917,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401473eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb", + "data": "0x01228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000058cdc98c4c44791bb8ba7e58a80324ef8c021c79c68e253c430fa2663188f7f2b49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193ab0ac600174134691bf9d91fee448b4d58c127356567da1c456b9c38468909d4effe6b7faa11177e1f96ee5d2834df001", "accessList": [], "v": "0x01", - "r": "0xd59e9b6c29a6d864bba86e554f74eeb8211ecdd35213e65d365b60d84f24d711", - "s": "0x44695d5189a953a40af706a9770fdc2c1e72b3153e2b8a251d431bc54bf20ad1", + "r": "0xa86d998ae0119a44401fa600566292d72a11f152a1191ab72d3cf3a6ca9fb1f6", + "s": "0x7169941cc11fd5f2d59d4f0c2e502284963004b431ca9d7a6795ae6d7b2d6f63", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -5997,7 +9929,7 @@ "withdrawals": [] } ], - "lastblockhash": "0x3b793c97e7cf41ffd4ab376fbc35aec0b1aa43703d86887f8248dc9e078d7ce2", + "lastblockhash": "0xb8bfdd892d2a24d678e3fcb28f49b561fe995ef60dc0e59843621f9394055b92", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -6024,9 +9956,9 @@ "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014", + "0x01": "0x01228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e", "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000", - "0x04": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014", + "0x04": "0x01228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e", "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000" } }, @@ -6040,16 +9972,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee4242", + "balance": "0xffffffffffffee2856", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "046-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_3c1e8b38219e3e12": { + "076-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_83e53423a2dd93fe": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -6080,19 +10012,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0468e57b88b3fb989ca8833e2226949576d4dd9ad844fcb53322c4b182abe6f25a0c0ffe6a49e8f0cb18a75c29ec80824e5bc16f1905698046f5f936803a382aa9ca0045c9ee148e58fc5d3cb7e47323007813d27acc179d7298fc678bb7fafaf52edb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301efbe0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff000000000000000000000000000000000000000000000000000000000000000050625ad853cc21ba40594f79591e5d35c445ecf9453014da6524c0cf6367c359991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c987e0d60304667f4f331765a966bd70a196805dd852362d3cc163b8e675d1c504a88a6e3dcc5a766a4f1fbfdb98ea45ecc080a0346847cf63701b3b615645a136e625833946627e1eeb29bcf7ff7b60171f983da05138ab6b939e37acdcc2afe23079bab2b66902f4e03c4cac04aada5a6fa563f6c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c86f9ab1d09cc7ce0eef9a92cec27b0e8f3a3ba000951e314a79d330e6b67feda0571eb623c63bf49bc742f8b50b57b4fa7c1a4813d5de5c77c82932caffb01d32a07e4702a3e2895822641438f25767dda1c05753a85603553561f28237ef5166ddb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b060c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f100000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffea421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d068e3069b19e6e71aed9b7dc8fbba13e4217d91cfc59be47cfaa7d09ef626242517541992c0f76091ddabf271682cc7c2cc001a0f8b90b4c2fdf0672d13117c0776b52d30e44b838cac9ba6292a51711f9e565aba030b06f921d772eeb002ce651a2802bb91498bdf15f32152e01e07f5f003ecae3c0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x468e57b88b3fb989ca8833e2226949576d4dd9ad844fcb53322c4b182abe6f25", - "transactionsTrie": "0xc0ffe6a49e8f0cb18a75c29ec80824e5bc16f1905698046f5f936803a382aa9c", - "receiptTrie": "0x045c9ee148e58fc5d3cb7e47323007813d27acc179d7298fc678bb7fafaf52ed", + "stateRoot": "0xc86f9ab1d09cc7ce0eef9a92cec27b0e8f3a3ba000951e314a79d330e6b67fed", + "transactionsTrie": "0x571eb623c63bf49bc742f8b50b57b4fa7c1a4813d5de5c77c82932caffb01d32", + "receiptTrie": "0x7e4702a3e2895822641438f25767dda1c05753a85603553561f28237ef5166dd", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x01efbe", + "gasUsed": "0x028b06", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -6102,7 +10034,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xa7482f4556bbd68e8bf340a577438fab71f3b6db5b210feee04fe85fdf775713" + "hash": "0xe3b737fb9f47f82488e0f504ccd93357e9793b0a6974a525c7b14c111f1e6364" }, "blocknumber": "1", "transactions": [ @@ -6115,11 +10047,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff000000000000000000000000000000000000000000000000000000000000000050625ad853cc21ba40594f79591e5d35c445ecf9453014da6524c0cf6367c359991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c987e0d60304667f4f331765a966bd70a196805dd852362d3cc163b8e675d1c504a88a6e3dcc5a766a4f1fbfdb98ea45ec", + "data": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f100000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffea421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d068e3069b19e6e71aed9b7dc8fbba13e4217d91cfc59be47cfaa7d09ef626242517541992c0f76091ddabf271682cc7c2c", "accessList": [], - "v": "0x00", - "r": "0x346847cf63701b3b615645a136e625833946627e1eeb29bcf7ff7b60171f983d", - "s": "0x5138ab6b939e37acdcc2afe23079bab2b66902f4e03c4cac04aada5a6fa563f6", + "v": "0x01", + "r": "0xf8b90b4c2fdf0672d13117c0776b52d30e44b838cac9ba6292a51711f9e565ab", + "s": "0x30b06f921d772eeb002ce651a2802bb91498bdf15f32152e01e07f5f003ecae3", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -6127,7 +10059,7 @@ "withdrawals": [] } ], - "lastblockhash": "0xa7482f4556bbd68e8bf340a577438fab71f3b6db5b210feee04fe85fdf775713", + "lastblockhash": "0xe3b737fb9f47f82488e0f504ccd93357e9793b0a6974a525c7b14c111f1e6364", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -6154,8 +10086,10 @@ "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff", - "0x04": "0x010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff" + "0x01": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1", + "0x02": "0x01", + "0x04": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1", + "0x05": "0x01" } }, "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { @@ -6168,16 +10102,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xfffffffffffff271ce", + "balance": "0xffffffffffffee32d6", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "047-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_3c87ec986c2656c2": { + "077-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_9b24f8997145435c": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -6208,19 +10142,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa027100c6d7fa80d66574c8d32d23cd36703b65eba1e151a00defa9cf6c8c3191aa0f7e2660492b68050e4fbc7869faddcc1cd73e06a75bc4049300aaa9d43573175a09fc500ac1e9d91018d2eb0c7325b94c3ad5e3cf88c8354bedb47e138ba1ad117b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028cb60c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363066d928e13fe443e957d82e3e71d48cb65d51028eb4483e719bf8efcdf12f7c321991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c9813889b6303c421a9c60a8163e7f31162e4d43e5594fda9b91fd34f98a9483169b959f24741d09b88e9ec9298f19de5dc080a0d5875297d6a840dc57c45d74b9c621b435a8950231f1494dd65a11f0f71eee00a015c0192d61dbdc08b947bc25574d79f5ec9512d2b2e7bd1efec7c7f4fee77a78c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09d4500d589b4a3386466a6e31628740ee86715f70574c017f3c605be622ef87da0317df4d41c72f0fd1de094501a96b9a4f17aa29295efcec532438d09e6616687a03db27d938f9a0fe7606d8f3ceef3343bac110ef0e0777685854ae1de08bede19b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830289b60c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000093efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f146556afc13cef6ed41f7abe142d32d7b5354e5664bd4b6d52080460dd404dc2cb26269c24826d2bcd0152d0b55ee0a9e90289c080a0d6c26c4fc98d7c6e3a628b9d8fadee4865627839329aed7a0d5ee6b70659aec8a03f930d8b4fcce01b53c707a1e5e0d57444e7d7914102d331e77c081aae0f5a11c0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x27100c6d7fa80d66574c8d32d23cd36703b65eba1e151a00defa9cf6c8c3191a", - "transactionsTrie": "0xf7e2660492b68050e4fbc7869faddcc1cd73e06a75bc4049300aaa9d43573175", - "receiptTrie": "0x9fc500ac1e9d91018d2eb0c7325b94c3ad5e3cf88c8354bedb47e138ba1ad117", + "stateRoot": "0x9d4500d589b4a3386466a6e31628740ee86715f70574c017f3c605be622ef87d", + "transactionsTrie": "0x317df4d41c72f0fd1de094501a96b9a4f17aa29295efcec532438d09e6616687", + "receiptTrie": "0x3db27d938f9a0fe7606d8f3ceef3343bac110ef0e0777685854ae1de08bede19", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x028cb6", + "gasUsed": "0x0289b6", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -6230,7 +10164,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x6c57cafbd9e5c5afc4afbd88d94c4cc961f641d3bcae1f13a93eb140980432b3" + "hash": "0x1bb9da2a79f1238ee9cbd040f8516b9062b33436b881717b2780a655f1506ad9" }, "blocknumber": "1", "transactions": [ @@ -6243,11 +10177,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363066d928e13fe443e957d82e3e71d48cb65d51028eb4483e719bf8efcdf12f7c321991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c9813889b6303c421a9c60a8163e7f31162e4d43e5594fda9b91fd34f98a9483169b959f24741d09b88e9ec9298f19de5d", + "data": "0x01ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000093efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f146556afc13cef6ed41f7abe142d32d7b5354e5664bd4b6d52080460dd404dc2cb26269c24826d2bcd0152d0b55ee0a9e90289", "accessList": [], "v": "0x00", - "r": "0xd5875297d6a840dc57c45d74b9c621b435a8950231f1494dd65a11f0f71eee00", - "s": "0x15c0192d61dbdc08b947bc25574d79f5ec9512d2b2e7bd1efec7c7f4fee77a78", + "r": "0xd6c26c4fc98d7c6e3a628b9d8fadee4865627839329aed7a0d5ee6b70659aec8", + "s": "0x3f930d8b4fcce01b53c707a1e5e0d57444e7d7914102d331e77c081aae0f5a11", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -6255,7 +10189,7 @@ "withdrawals": [] } ], - "lastblockhash": "0x6c57cafbd9e5c5afc4afbd88d94c4cc961f641d3bcae1f13a93eb140980432b3", + "lastblockhash": "0x1bb9da2a79f1238ee9cbd040f8516b9062b33436b881717b2780a655f1506ad9", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -6282,10 +10216,10 @@ "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff", - "0x02": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306", - "0x04": "0x010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff", - "0x05": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306" + "0x01": "0x01ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef", + "0x02": "0x01", + "0x04": "0x01ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef", + "0x05": "0x01" } }, "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { @@ -6298,16 +10232,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee2706", + "balance": "0xffffffffffffee3c06", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "048-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_3cd183d0bab85fb7": { + "078-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_9b754afb690c47e1": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -6338,13 +10272,13 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f11f417e8bae34179422999fe7455f99f02d51e30f5e10071f220cc0493385c9a08d8dc27e5c2ab3d3bfc91a2176e8bd06180bbe166b9dfc319caba700bc4b8f0fa04e8d678e548e6c41a056eb0927bbc3e4d80e564d9d674fea8bbc1783049e898ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b120c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc080a0f544a23c3fb57a08592ceb891725e3b767ad575036ddf788b3371625630d2bc1a013b4537a9c47802808e089894d50f079a44480c6c357ba6f903c51786dbd5729c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01a36e8869d420e367892e1f1667b9e07dfd034facad0f4dfa0b1ef620c9852bda0ad8057626099a46cf71b10f61dd70170deaec09b46058d6e61a5ea448188be3aa04e8d678e548e6c41a056eb0927bbc3e4d80e564d9d674fea8bbc1783049e898ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b120c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000273eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc080a0ff9ab24e67185c0a3ea32116ddc04fcb5a1cc1bf9abfbf95a20c15a498558cbba02957afcf781c2ba6c6cd8e29e01072d7a75163c28ce1525f50fe730d7844b5b3c0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xf11f417e8bae34179422999fe7455f99f02d51e30f5e10071f220cc0493385c9", - "transactionsTrie": "0x8d8dc27e5c2ab3d3bfc91a2176e8bd06180bbe166b9dfc319caba700bc4b8f0f", + "stateRoot": "0x1a36e8869d420e367892e1f1667b9e07dfd034facad0f4dfa0b1ef620c9852bd", + "transactionsTrie": "0xad8057626099a46cf71b10f61dd70170deaec09b46058d6e61a5ea448188be3a", "receiptTrie": "0x4e8d678e548e6c41a056eb0927bbc3e4d80e564d9d674fea8bbc1783049e898a", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", @@ -6360,7 +10294,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x891b49a6e9dee5146ee52cc39214aaf0859d66e8389dd04c270240b32eb52e93" + "hash": "0xa55a6d6e58036ec9b76ab02fc4ee20eaf1c5baed9a2a373eb1555797390fc271" }, "blocknumber": "1", "transactions": [ @@ -6373,11 +10307,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb", + "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000273eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb", "accessList": [], "v": "0x00", - "r": "0xf544a23c3fb57a08592ceb891725e3b767ad575036ddf788b3371625630d2bc1", - "s": "0x13b4537a9c47802808e089894d50f079a44480c6c357ba6f903c51786dbd5729", + "r": "0xff9ab24e67185c0a3ea32116ddc04fcb5a1cc1bf9abfbf95a20c15a498558cbb", + "s": "0x2957afcf781c2ba6c6cd8e29e01072d7a75163c28ce1525f50fe730d7844b5b3", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -6385,7 +10319,7 @@ "withdrawals": [] } ], - "lastblockhash": "0x891b49a6e9dee5146ee52cc39214aaf0859d66e8389dd04c270240b32eb52e93", + "lastblockhash": "0xa55a6d6e58036ec9b76ab02fc4ee20eaf1c5baed9a2a373eb1555797390fc271", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -6413,9 +10347,9 @@ "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { "0x01": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", - "0x02": "0x01", + "0x02": "0x02", "0x04": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", - "0x05": "0x01" + "0x05": "0x02" } }, "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { @@ -6435,9 +10369,9 @@ }, "sealEngine": "NoProof" }, - "049-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_420f2a187ce77035": { + "079-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_a0be66af9a97ea52": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -6468,19 +10402,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f7b6a8bcc121e766e4a7e80afc09f1017f5694e04faad215069bc5ea1921b678a074ffb69baf1127a66dad629b01077b7d4c2e67cb4541bbcfe3c3209d713b7a47a00854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b420c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff00000000000000000000000000000000000000000000000000000000000000022bf4e1f980eb94661a21affc4d7e6e56f214fe3e7dc4d20b98c66ffd43cabeb0991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c9aa421ef5eb79b0e642339a0edd408faed044978319b307f5230eb4f6b787602e29cd9246b905aa34077c802bc1087be0c080a0e04b006cb6bdc0ed9f457600453540491c1a3b67401795db0405d16f5f7f514ba017b3b6c829ee1bb7f8bc1542eb3d3fef20958d3ed2cce72a9b3a947ce62862d6c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02828205630590b438ba8bd8f09f2aa414d17c354577d1793c87952594d02e4d3a0aae8148356f17ee14d26d0dd97585d0cdd3a5bb29fde552099a23514a2fc4367a0c3c65c206583fcf6305a4dd04ddabcfd990686acc213716af1d1f51191a104adb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830289ce0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e3863700000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4e97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc001a0c6de0a5b4d1b3a61b6cae300c7c8838853711435a62fdea81a1321e0335dcdbba02666f15a2c26f68a2eefdbd3d1aad5b4e01935aa3de6a741d76f77a0362bc6b0c0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xf7b6a8bcc121e766e4a7e80afc09f1017f5694e04faad215069bc5ea1921b678", - "transactionsTrie": "0x74ffb69baf1127a66dad629b01077b7d4c2e67cb4541bbcfe3c3209d713b7a47", - "receiptTrie": "0x0854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90", + "stateRoot": "0x2828205630590b438ba8bd8f09f2aa414d17c354577d1793c87952594d02e4d3", + "transactionsTrie": "0xaae8148356f17ee14d26d0dd97585d0cdd3a5bb29fde552099a23514a2fc4367", + "receiptTrie": "0xc3c65c206583fcf6305a4dd04ddabcfd990686acc213716af1d1f51191a104ad", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x028b42", + "gasUsed": "0x0289ce", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -6490,7 +10424,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xecac92d3f16905bd67d3425882f02bb72f96c2492192815794ad65aed8c3ba27" + "hash": "0x8fb29652119b3ac323190cb26007400f7b004e326f5c16d83b99091143ad5d8c" }, "blocknumber": "1", "transactions": [ @@ -6503,11 +10437,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff00000000000000000000000000000000000000000000000000000000000000022bf4e1f980eb94661a21affc4d7e6e56f214fe3e7dc4d20b98c66ffd43cabeb0991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c9aa421ef5eb79b0e642339a0edd408faed044978319b307f5230eb4f6b787602e29cd9246b905aa34077c802bc1087be0", + "data": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e3863700000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4e97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb", "accessList": [], - "v": "0x00", - "r": "0xe04b006cb6bdc0ed9f457600453540491c1a3b67401795db0405d16f5f7f514b", - "s": "0x17b3b6c829ee1bb7f8bc1542eb3d3fef20958d3ed2cce72a9b3a947ce62862d6", + "v": "0x01", + "r": "0xc6de0a5b4d1b3a61b6cae300c7c8838853711435a62fdea81a1321e0335dcdbb", + "s": "0x2666f15a2c26f68a2eefdbd3d1aad5b4e01935aa3de6a741d76f77a0362bc6b0", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -6515,7 +10449,7 @@ "withdrawals": [] } ], - "lastblockhash": "0xecac92d3f16905bd67d3425882f02bb72f96c2492192815794ad65aed8c3ba27", + "lastblockhash": "0x8fb29652119b3ac323190cb26007400f7b004e326f5c16d83b99091143ad5d8c", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -6542,9 +10476,9 @@ "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff", + "0x01": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e38637", "0x02": "0x02", - "0x04": "0x010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff", + "0x04": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e38637", "0x05": "0x02" } }, @@ -6558,16 +10492,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee3132", + "balance": "0xffffffffffffee3b5e", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "050-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_444b73ff54a19b44": { + "080-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_af669445747d2585": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -6598,19 +10532,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa007e7ee5bdc40dd867afc65eb488fb609f8431800c2ab7e393d1e7116e7f82f10a025decf2481d75b33c3df3a9c97ece8d88e2bdc07c3bb3365b98b44b84fafb3dba00854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b420c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b90000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd51a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca7b3352fb4d0b82179ccba8f8cd2969f93e67f9ee926607cb374cff85e22c578ee94cf738d332e1b2cc2feb908690c1b03c080a017c92413ea06bd3a118ac741ef709240765db2a11327eea4ec05e11a846498e2a001d601f80306732c8c71ca99e6aa994f65dfe7b742567647a7ff53fa724991a4c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa024bdc5bc7dba0d025d999c9c1907d4410a6c143a04d9f04b0da073d9cc71342ba08c48982825d75a341c3d039e721802dd6d0e69453ebf1ed029d6ad3291669df8a08b7c217608f6432544e6a1adc0d96e91ba07f23c82941754aaf9783f4b89de84b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028caa0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363066c28d6edfea2f5e1638cb1a8be8197549d52e133fa9dae87e52abb45f7b192ddb49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193aa88d68fe3ad0d09b07f4605b1364c8d4804bf7096dae003d821cc01c3b7d35c6d1fdae14e2db3c05e1cdcea7c7b7f262c001a00701c49658a38d7c49cecaf3fa86dad653181ad60aa1adbdd7340596998ca0bfa04464656ebceb017add91468367326936f895b7ccb08f193383d0e2213885fc2ec0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x07e7ee5bdc40dd867afc65eb488fb609f8431800c2ab7e393d1e7116e7f82f10", - "transactionsTrie": "0x25decf2481d75b33c3df3a9c97ece8d88e2bdc07c3bb3365b98b44b84fafb3db", - "receiptTrie": "0x0854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90", + "stateRoot": "0x24bdc5bc7dba0d025d999c9c1907d4410a6c143a04d9f04b0da073d9cc71342b", + "transactionsTrie": "0x8c48982825d75a341c3d039e721802dd6d0e69453ebf1ed029d6ad3291669df8", + "receiptTrie": "0x8b7c217608f6432544e6a1adc0d96e91ba07f23c82941754aaf9783f4b89de84", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x028b42", + "gasUsed": "0x028caa", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -6620,7 +10554,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x60d13de7978f1545288eaf4dac0a3d7cdca59ffe5f67747a6b20d2fe9b8c4f61" + "hash": "0x994ed7ceba5d066dbf2140e5216ce2729e057991ff3a33e02f729f8f48b57ab1" }, "blocknumber": "1", "transactions": [ @@ -6633,11 +10567,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b90000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd51a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca7b3352fb4d0b82179ccba8f8cd2969f93e67f9ee926607cb374cff85e22c578ee94cf738d332e1b2cc2feb908690c1b03", + "data": "0x01228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363066c28d6edfea2f5e1638cb1a8be8197549d52e133fa9dae87e52abb45f7b192ddb49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193aa88d68fe3ad0d09b07f4605b1364c8d4804bf7096dae003d821cc01c3b7d35c6d1fdae14e2db3c05e1cdcea7c7b7f262", "accessList": [], - "v": "0x00", - "r": "0x17c92413ea06bd3a118ac741ef709240765db2a11327eea4ec05e11a846498e2", - "s": "0x01d601f80306732c8c71ca99e6aa994f65dfe7b742567647a7ff53fa724991a4", + "v": "0x01", + "r": "0x0701c49658a38d7c49cecaf3fa86dad653181ad60aa1adbdd7340596998ca0bf", + "s": "0x4464656ebceb017add91468367326936f895b7ccb08f193383d0e2213885fc2e", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -6645,7 +10579,7 @@ "withdrawals": [] } ], - "lastblockhash": "0x60d13de7978f1545288eaf4dac0a3d7cdca59ffe5f67747a6b20d2fe9b8c4f61", + "lastblockhash": "0x994ed7ceba5d066dbf2140e5216ce2729e057991ff3a33e02f729f8f48b57ab1", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -6672,10 +10606,10 @@ "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9", - "0x02": "0x01", - "0x04": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9", - "0x05": "0x01" + "0x01": "0x01228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e", + "0x02": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306", + "0x04": "0x01228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e", + "0x05": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306" } }, "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { @@ -6688,16 +10622,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee3132", + "balance": "0xffffffffffffee275a", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "051-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_53a9bdf4f75196da": { + "081-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_af8b75f664ed7d43": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -6728,19 +10662,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa078d747da9de7ebbee4ee9a946d030d50490e82afc073f5061b9ea13a9c79a0a7a09d65db0c1d55cbe078ed658fc3aa400c9629ed9fae334c80c1b69788a763cb63a0274957ba64edf860e8f2e23aaecc40d94ffab82273d69fc1d8bfecd6724434b6b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028c860c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d3630673eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc001a0a2e5fd2288f89860236f9e7c6f98eba4de7dbaee1c3521e805b33fd3f8e935aaa020cae692d1a23b0cfb422af34e238b1792e2bc38bdcc816c86ab692ea6618ab3c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00b7f49d0808e7f4029fd8fbc7a9cf2c91d845b38493b2eafc08e2b883d49815fa02b66f305353250ed55ba87736150eb4db06c9ba6cc256a74573227f0a4284139a0f91c3d227b7dd5018ec562a377541ab822d8b42bb7b9be413107620c7f882e25b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b360c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef000000000000000000000000000000000000000000000000000000000000000264d3b6baf69395bde2abd1d43f99be66bc64581234fd363e2ae3a0d419cfc3fc93efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f146556af08cbca9deec336f2a56ca0b202995830f238fc3cb2ecdbdc0bbb6419e3e60507e823ff7dcbd17394cea55bc514716cc001a053b395e2240df6cac69c67fcbbf1a84c7cfcb7bb4f9773fc124b898660d3b4ffa013156ba473c2f73efeaea8fa83c22ab33af1e0c1501eff697c4d81d6951d8002c0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x78d747da9de7ebbee4ee9a946d030d50490e82afc073f5061b9ea13a9c79a0a7", - "transactionsTrie": "0x9d65db0c1d55cbe078ed658fc3aa400c9629ed9fae334c80c1b69788a763cb63", - "receiptTrie": "0x274957ba64edf860e8f2e23aaecc40d94ffab82273d69fc1d8bfecd6724434b6", + "stateRoot": "0x0b7f49d0808e7f4029fd8fbc7a9cf2c91d845b38493b2eafc08e2b883d49815f", + "transactionsTrie": "0x2b66f305353250ed55ba87736150eb4db06c9ba6cc256a74573227f0a4284139", + "receiptTrie": "0xf91c3d227b7dd5018ec562a377541ab822d8b42bb7b9be413107620c7f882e25", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x028c86", + "gasUsed": "0x028b36", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -6750,7 +10684,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x02d19ba523b823f30262596ba1811ea38c5af4f75403dc0bb00aad8b57e41263" + "hash": "0xdef46302cfa328ea05599585e878144bf4ff422e307fdc88a519a4b932c42937" }, "blocknumber": "1", "transactions": [ @@ -6763,11 +10697,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d3630673eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb", + "data": "0x01ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef000000000000000000000000000000000000000000000000000000000000000264d3b6baf69395bde2abd1d43f99be66bc64581234fd363e2ae3a0d419cfc3fc93efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f146556af08cbca9deec336f2a56ca0b202995830f238fc3cb2ecdbdc0bbb6419e3e60507e823ff7dcbd17394cea55bc514716c", "accessList": [], "v": "0x01", - "r": "0xa2e5fd2288f89860236f9e7c6f98eba4de7dbaee1c3521e805b33fd3f8e935aa", - "s": "0x20cae692d1a23b0cfb422af34e238b1792e2bc38bdcc816c86ab692ea6618ab3", + "r": "0x53b395e2240df6cac69c67fcbbf1a84c7cfcb7bb4f9773fc124b898660d3b4ff", + "s": "0x13156ba473c2f73efeaea8fa83c22ab33af1e0c1501eff697c4d81d6951d8002", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -6775,7 +10709,7 @@ "withdrawals": [] } ], - "lastblockhash": "0x02d19ba523b823f30262596ba1811ea38c5af4f75403dc0bb00aad8b57e41263", + "lastblockhash": "0xdef46302cfa328ea05599585e878144bf4ff422e307fdc88a519a4b932c42937", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -6802,10 +10736,10 @@ "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", - "0x02": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306", - "0x04": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", - "0x05": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306" + "0x01": "0x01ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef", + "0x02": "0x02", + "0x04": "0x01ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef", + "0x05": "0x02" } }, "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { @@ -6818,16 +10752,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee2856", + "balance": "0xffffffffffffee3186", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "052-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_7db4f140a955dd1a": { + "082-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_b6cb6698327d9835": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -6858,19 +10792,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00f3b85c697eaee96d0827927ad3a55df33adfdcd9853f75ca6c6624f501f6be3a0f55c1664b469d0b46740caf7267894d480569c45b50aa195862533884ad29c25a0274957ba64edf860e8f2e23aaecc40d94ffab82273d69fc1d8bfecd6724434b6b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028c860c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b973eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000058cdc98c4c44791bb8ba7e58a80324ef8c021c79c68e253c430fa2663188f7f2a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca782af93a59a4978439a9a05cf6324e0e558c68b114f590589255bffe9ea2c0917a6ff6a7cd2e317f26f18b07802e9379ac001a0f12890dac4605451cc47201df1836e7868c1fe0177e2fc00e12c94cb319ae86aa074c4958c3992ba2e0cb80d0a7ba8075e4238086ece1ec445211af18656405f56c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0adce67a36931544ed896b583bafb3e872054ffdf8c6d0d29f5cb8e0ddc554b5aa0f5252d35e5c09f0f1733e3f59628b0104ff2c8f3d009ce3307a5dd5d84fa88d7a00854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b420c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e00000000000000000000000000000000000000000000000000000000000000026a75e4fe63e5e148c853462a680c3e3ccedea34719d28f19bf1b35ae4eea37d6b49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193a861a2aef7aa82db033bfa125b9f756afecaf1db28384925d5007bcf7dff1a53b72bdf522610303075aeecab41685d720c080a0ac4f85f8ffec48fb8cd4304a0db3bdb5bbf90a82a585325744d0a80512d9e064a05a913cb5dff943b5cba667f91523174f62f7d49c59399890703cb8e8e61f5bfbc0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x0f3b85c697eaee96d0827927ad3a55df33adfdcd9853f75ca6c6624f501f6be3", - "transactionsTrie": "0xf55c1664b469d0b46740caf7267894d480569c45b50aa195862533884ad29c25", - "receiptTrie": "0x274957ba64edf860e8f2e23aaecc40d94ffab82273d69fc1d8bfecd6724434b6", + "stateRoot": "0xadce67a36931544ed896b583bafb3e872054ffdf8c6d0d29f5cb8e0ddc554b5a", + "transactionsTrie": "0xf5252d35e5c09f0f1733e3f59628b0104ff2c8f3d009ce3307a5dd5d84fa88d7", + "receiptTrie": "0x0854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x028c86", + "gasUsed": "0x028b42", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -6880,7 +10814,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xa5bfc66b8794dac04b42067644ffbbb88e9ef08a5bc235374d9046f0c868375d" + "hash": "0x9da4aa1610b86dc9e660469d98d56b1ab0cf45f52062d187b4b78f1c856bbc49" }, "blocknumber": "1", "transactions": [ @@ -6893,11 +10827,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b973eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000058cdc98c4c44791bb8ba7e58a80324ef8c021c79c68e253c430fa2663188f7f2a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca782af93a59a4978439a9a05cf6324e0e558c68b114f590589255bffe9ea2c0917a6ff6a7cd2e317f26f18b07802e9379a", + "data": "0x01228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e00000000000000000000000000000000000000000000000000000000000000026a75e4fe63e5e148c853462a680c3e3ccedea34719d28f19bf1b35ae4eea37d6b49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193a861a2aef7aa82db033bfa125b9f756afecaf1db28384925d5007bcf7dff1a53b72bdf522610303075aeecab41685d720", "accessList": [], - "v": "0x01", - "r": "0xf12890dac4605451cc47201df1836e7868c1fe0177e2fc00e12c94cb319ae86a", - "s": "0x74c4958c3992ba2e0cb80d0a7ba8075e4238086ece1ec445211af18656405f56", + "v": "0x00", + "r": "0xac4f85f8ffec48fb8cd4304a0db3bdb5bbf90a82a585325744d0a80512d9e064", + "s": "0x5a913cb5dff943b5cba667f91523174f62f7d49c59399890703cb8e8e61f5bfb", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -6905,7 +10839,7 @@ "withdrawals": [] } ], - "lastblockhash": "0xa5bfc66b8794dac04b42067644ffbbb88e9ef08a5bc235374d9046f0c868375d", + "lastblockhash": "0x9da4aa1610b86dc9e660469d98d56b1ab0cf45f52062d187b4b78f1c856bbc49", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -6932,10 +10866,10 @@ "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9", - "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000", - "0x04": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9", - "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000" + "0x01": "0x01228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e", + "0x02": "0x02", + "0x04": "0x01228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e", + "0x05": "0x02" } }, "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { @@ -6948,16 +10882,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee2856", + "balance": "0xffffffffffffee3132", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "053-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_83e53423a2dd93fe": { + "083-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_b6ec3736f9ff2c62": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -6988,19 +10922,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0dbdb7fbdca9b5af1f8e50f669c4b5c940e7b9df445f3479df8c920de78e02347a0054aa0f0c2246c7457b03a391afaa949ec3e39b905dfda383f15270f65430819a04e8d678e548e6c41a056eb0927bbc3e4d80e564d9d674fea8bbc1783049e898ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b120c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff00000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffe991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c994b3fc86ed60de7223ce1ec3a22dcf3c7c3672c1870ffa0888bc29eeb684e9120857089163dea588685ff2fa0798e808c001a01ee54e9270802851ac653fabaf9e1492561df273e530d0f72f83fc06f0d06f3ca068e7cd4bd3b37d28e7c8a21cd53b48d6a650583d44020288f18797390767e45ec0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0baa6bba6b3405a2074bb78915ae506848588d568646009db841bba2f9a27b7c6a0240954eeb71487e243620f746e9cc5a2924de9178684e710582242fdf649cd5aa01f4471e72609435e3c623b2bdd24443eff8c038c1518d3363d7be3f718a83963b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b2a0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306000000000000000000000000000000000000000000000000000000000000000093efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f14655682f1cd05471ab6ff21bcfd5c3369cba05b03a872a10829236d184fe1872767c391c2aa7e3b85babb1e6093b7224e7732c001a02fef77316aed95d26497fa65531661195bd2c1441810fc131f5d69b8ca87a877a00e801a95e9f1aa9a8b0897c6b61f83eafc2f650ba05a64552683643d6e858bf1c0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xdbdb7fbdca9b5af1f8e50f669c4b5c940e7b9df445f3479df8c920de78e02347", - "transactionsTrie": "0x054aa0f0c2246c7457b03a391afaa949ec3e39b905dfda383f15270f65430819", - "receiptTrie": "0x4e8d678e548e6c41a056eb0927bbc3e4d80e564d9d674fea8bbc1783049e898a", + "stateRoot": "0xbaa6bba6b3405a2074bb78915ae506848588d568646009db841bba2f9a27b7c6", + "transactionsTrie": "0x240954eeb71487e243620f746e9cc5a2924de9178684e710582242fdf649cd5a", + "receiptTrie": "0x1f4471e72609435e3c623b2bdd24443eff8c038c1518d3363d7be3f718a83963", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x028b12", + "gasUsed": "0x028b2a", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -7010,7 +10944,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xa8fad688678f4c8665c013035a76dffa8262062836a58a6e303f41f5e5e1f819" + "hash": "0x064208421944db644db5b7b42bbb37296106505424aa706dc30285900e562e6b" }, "blocknumber": "1", "transactions": [ @@ -7023,11 +10957,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff00000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffe991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c994b3fc86ed60de7223ce1ec3a22dcf3c7c3672c1870ffa0888bc29eeb684e9120857089163dea588685ff2fa0798e808", + "data": "0x01ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306000000000000000000000000000000000000000000000000000000000000000093efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f14655682f1cd05471ab6ff21bcfd5c3369cba05b03a872a10829236d184fe1872767c391c2aa7e3b85babb1e6093b7224e7732", "accessList": [], "v": "0x01", - "r": "0x1ee54e9270802851ac653fabaf9e1492561df273e530d0f72f83fc06f0d06f3c", - "s": "0x68e7cd4bd3b37d28e7c8a21cd53b48d6a650583d44020288f18797390767e45e", + "r": "0x2fef77316aed95d26497fa65531661195bd2c1441810fc131f5d69b8ca87a877", + "s": "0x0e801a95e9f1aa9a8b0897c6b61f83eafc2f650ba05a64552683643d6e858bf1", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -7035,7 +10969,7 @@ "withdrawals": [] } ], - "lastblockhash": "0xa8fad688678f4c8665c013035a76dffa8262062836a58a6e303f41f5e5e1f819", + "lastblockhash": "0x064208421944db644db5b7b42bbb37296106505424aa706dc30285900e562e6b", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -7062,10 +10996,10 @@ "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff", - "0x02": "0x01", - "0x04": "0x010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff", - "0x05": "0x01" + "0x01": "0x01ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef", + "0x02": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306", + "0x04": "0x01ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef", + "0x05": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306" } }, "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { @@ -7078,16 +11012,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee3282", + "balance": "0xffffffffffffee31da", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "054-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_9b24f8997145435c": { + "084-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_becf2e1641bbd4e6": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -7118,19 +11052,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02a85f21352cead1c679dd9a42d42f9c12fbb871e4a75558e8c2593d501e9f694a0622fb6c2c5f74f001d018380942db97241f1effe2c46b3499b82dc2b304eed95a03db27d938f9a0fe7606d8f3ceef3343bac110ef0e0777685854ae1de08bede19b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830289b60c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc500000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000b09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440efa229f9de17c0f4b53ee9d448c189a5909358e32ec04409265497cf41cbdcd03af5bd50812cafffc09e08e0e7e7b96337c080a0115b81c4aa7b33a365679981d8ea81ba8f7993b52903a333319bad3fe1ec6250a037d229faa44fbd5230a23b0d98da28d0b646555a121db5945ee763e9aee38b64c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa094d412bd70586706283cb2b03b7f775fabb1edffafe081383caa770e46650edfa04ddc20059aa6c603a53e14ef3dfd107de7e4006cbcd47fd42eca705bdc222d1ba0b2c5ad406e8ea715c8495b834c90c372db84f259009e93c85422e0e1b9203fa4b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028c7a0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c05eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c6273eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc001a03273576d50c19ea38badedb55c53e83a9da2282ca86a1b56df6111a939c0a83ca07fe8ecbf7fc1cc72ae1abc6cad0714476b3dd2fbb64281aab1758e15fbccce3dc0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x2a85f21352cead1c679dd9a42d42f9c12fbb871e4a75558e8c2593d501e9f694", - "transactionsTrie": "0x622fb6c2c5f74f001d018380942db97241f1effe2c46b3499b82dc2b304eed95", - "receiptTrie": "0x3db27d938f9a0fe7606d8f3ceef3343bac110ef0e0777685854ae1de08bede19", + "stateRoot": "0x94d412bd70586706283cb2b03b7f775fabb1edffafe081383caa770e46650edf", + "transactionsTrie": "0x4ddc20059aa6c603a53e14ef3dfd107de7e4006cbcd47fd42eca705bdc222d1b", + "receiptTrie": "0xb2c5ad406e8ea715c8495b834c90c372db84f259009e93c85422e0e1b9203fa4", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x0289b6", + "gasUsed": "0x028c7a", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -7140,7 +11074,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x4fc55c78fb04d618685d41585088e329f20b37353c4126619f01c4f9350625c7" + "hash": "0x9b79deee26ea9713ef9804f99ab10b4e9d89bcc723bcce6d122d4ea45cc7f6a4" }, "blocknumber": "1", "transactions": [ @@ -7153,11 +11087,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc500000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000b09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440efa229f9de17c0f4b53ee9d448c189a5909358e32ec04409265497cf41cbdcd03af5bd50812cafffc09e08e0e7e7b96337", + "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c05eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c6273eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb", "accessList": [], - "v": "0x00", - "r": "0x115b81c4aa7b33a365679981d8ea81ba8f7993b52903a333319bad3fe1ec6250", - "s": "0x37d229faa44fbd5230a23b0d98da28d0b646555a121db5945ee763e9aee38b64", + "v": "0x01", + "r": "0x3273576d50c19ea38badedb55c53e83a9da2282ca86a1b56df6111a939c0a83c", + "s": "0x7fe8ecbf7fc1cc72ae1abc6cad0714476b3dd2fbb64281aab1758e15fbccce3d", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -7165,7 +11099,7 @@ "withdrawals": [] } ], - "lastblockhash": "0x4fc55c78fb04d618685d41585088e329f20b37353c4126619f01c4f9350625c7", + "lastblockhash": "0x9b79deee26ea9713ef9804f99ab10b4e9d89bcc723bcce6d122d4ea45cc7f6a4", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -7192,10 +11126,10 @@ "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5", - "0x02": "0x01", - "0x04": "0x01d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5", - "0x05": "0x01" + "0x01": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", + "0x02": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62", + "0x04": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", + "0x05": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62" } }, "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { @@ -7208,16 +11142,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee3c06", + "balance": "0xffffffffffffee28aa", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "055-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_9b754afb690c47e1": { + "085-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_c3d4322ec17fe7cd": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -7248,19 +11182,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01a36e8869d420e367892e1f1667b9e07dfd034facad0f4dfa0b1ef620c9852bda0ad8057626099a46cf71b10f61dd70170deaec09b46058d6e61a5ea448188be3aa04e8d678e548e6c41a056eb0927bbc3e4d80e564d9d674fea8bbc1783049e898ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b120c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000273eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc080a0ff9ab24e67185c0a3ea32116ddc04fcb5a1cc1bf9abfbf95a20c15a498558cbba02957afcf781c2ba6c6cd8e29e01072d7a75163c28ce1525f50fe730d7844b5b3c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa08a6b56609fcfb592b1f7752666848a20c36e1dce8acb5e0c82e61e8c9e5f3f8ea04956ae2560cb5eea655bfc31852c85788567e45b96eea8cb216c67b03b814afda01cd77ad11d984b1ea60bb6b46188fdd129a9959acf194326fd53416ac732ca4cb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301ec0a0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc080a08dcecbb5ef87b5431d38477cc01452a1a9a0326a95616a4308bb60573f1ee351a01e2b665403ad29dc09832d1d1d65e9721d57157fbcfc64fe0a18a5959db92968c0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x1a36e8869d420e367892e1f1667b9e07dfd034facad0f4dfa0b1ef620c9852bd", - "transactionsTrie": "0xad8057626099a46cf71b10f61dd70170deaec09b46058d6e61a5ea448188be3a", - "receiptTrie": "0x4e8d678e548e6c41a056eb0927bbc3e4d80e564d9d674fea8bbc1783049e898a", + "stateRoot": "0x8a6b56609fcfb592b1f7752666848a20c36e1dce8acb5e0c82e61e8c9e5f3f8e", + "transactionsTrie": "0x4956ae2560cb5eea655bfc31852c85788567e45b96eea8cb216c67b03b814afd", + "receiptTrie": "0x1cd77ad11d984b1ea60bb6b46188fdd129a9959acf194326fd53416ac732ca4c", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x028b12", + "gasUsed": "0x01ec0a", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -7270,7 +11204,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xa55a6d6e58036ec9b76ab02fc4ee20eaf1c5baed9a2a373eb1555797390fc271" + "hash": "0xa7ca4860d8c32c47d4a939ab3262cb5f64c081ab792980f37f37aa9df6471931" }, "blocknumber": "1", "transactions": [ @@ -7283,11 +11217,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000273eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb", + "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb", "accessList": [], "v": "0x00", - "r": "0xff9ab24e67185c0a3ea32116ddc04fcb5a1cc1bf9abfbf95a20c15a498558cbb", - "s": "0x2957afcf781c2ba6c6cd8e29e01072d7a75163c28ce1525f50fe730d7844b5b3", + "r": "0x8dcecbb5ef87b5431d38477cc01452a1a9a0326a95616a4308bb60573f1ee351", + "s": "0x1e2b665403ad29dc09832d1d1d65e9721d57157fbcfc64fe0a18a5959db92968", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -7295,7 +11229,7 @@ "withdrawals": [] } ], - "lastblockhash": "0xa55a6d6e58036ec9b76ab02fc4ee20eaf1c5baed9a2a373eb1555797390fc271", + "lastblockhash": "0xa7ca4860d8c32c47d4a939ab3262cb5f64c081ab792980f37f37aa9df6471931", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -7322,10 +11256,8 @@ "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", - "0x02": "0x02", - "0x04": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", - "0x05": "0x02" + "0x01": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014", + "0x04": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014" } }, "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { @@ -7338,16 +11270,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee3282", + "balance": "0xfffffffffffff28bba", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "056-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_af669445747d2585": { + "086-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_c5e1490d672d026d": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -7378,13 +11310,13 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07a82e6f4eedc2d36d0947e616e82c2ec695173750ee72adb98a4c8d69b0b2cb2a0017d9955a8573bf63d7c249d58b10aa74f61b65b0c1576819cfed9f7dc7d0a08a09fc500ac1e9d91018d2eb0c7325b94c3ad5e3cf88c8354bedb47e138ba1ad117b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028cb60c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363066c28d6edfea2f5e1638cb1a8be8197549d52e133fa9dae87e52abb45f7b192dda6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca7908fa50ed7c7359b6fea6031f8089459bb91ea77cb0af622bdfc7abb7a98d571aba9c322e70b25e2f439fc75887a0af0c080a05dd55ab0c5ee2e7a56882443088d6930fa546589d54785031160621a6fcf8361a0253466980aee26f63c683388f233fe50e49eb70a9e3e41d050fbb16fde75612dc0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03c6e28e82ab7e39e7119bb6fdbfa1f25abeead79da2f056ec08751e761a6a330a04636f4dc5b33ce0f2cceb49e2b892967cf83f3f68fa1a777bdbe635eebe5ed47a09fc500ac1e9d91018d2eb0c7325b94c3ad5e3cf88c8354bedb47e138ba1ad117b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028cb60c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d3630624d25032e67a7e6a4910df5834b8fe70e6bcfeeac0352434196bdf4b2485d5a18f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7acd56791e0ab0d1b3802021862013418993da2646e87140e12631e2914d9e6c676466aa3adfc91b61f84255544cab544c080a089d9c97ad5598311895ada0f236874d7e335a9f3c3e4cedcaba1a0940c3335f4a001308456b269a47618f76d89289d7d53cf8ad10b598211552a6aef86ce54d3f1c0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x7a82e6f4eedc2d36d0947e616e82c2ec695173750ee72adb98a4c8d69b0b2cb2", - "transactionsTrie": "0x017d9955a8573bf63d7c249d58b10aa74f61b65b0c1576819cfed9f7dc7d0a08", + "stateRoot": "0x3c6e28e82ab7e39e7119bb6fdbfa1f25abeead79da2f056ec08751e761a6a330", + "transactionsTrie": "0x4636f4dc5b33ce0f2cceb49e2b892967cf83f3f68fa1a777bdbe635eebe5ed47", "receiptTrie": "0x9fc500ac1e9d91018d2eb0c7325b94c3ad5e3cf88c8354bedb47e138ba1ad117", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", @@ -7400,7 +11332,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xfcf43ffdb4a1a6f70c41b20be1bbbbfb7f69ac5babe7e288d778bb1cb981f218" + "hash": "0x866b94d6c4f292d309627942aa721ce4a7a0a51e9f28c8a386cf54cc1144d2d1" }, "blocknumber": "1", "transactions": [ @@ -7413,11 +11345,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363066c28d6edfea2f5e1638cb1a8be8197549d52e133fa9dae87e52abb45f7b192dda6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca7908fa50ed7c7359b6fea6031f8089459bb91ea77cb0af622bdfc7abb7a98d571aba9c322e70b25e2f439fc75887a0af0", + "data": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d3630624d25032e67a7e6a4910df5834b8fe70e6bcfeeac0352434196bdf4b2485d5a18f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7acd56791e0ab0d1b3802021862013418993da2646e87140e12631e2914d9e6c676466aa3adfc91b61f84255544cab544", "accessList": [], "v": "0x00", - "r": "0x5dd55ab0c5ee2e7a56882443088d6930fa546589d54785031160621a6fcf8361", - "s": "0x253466980aee26f63c683388f233fe50e49eb70a9e3e41d050fbb16fde75612d", + "r": "0x89d9c97ad5598311895ada0f236874d7e335a9f3c3e4cedcaba1a0940c3335f4", + "s": "0x01308456b269a47618f76d89289d7d53cf8ad10b598211552a6aef86ce54d3f1", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -7425,7 +11357,7 @@ "withdrawals": [] } ], - "lastblockhash": "0xfcf43ffdb4a1a6f70c41b20be1bbbbfb7f69ac5babe7e288d778bb1cb981f218", + "lastblockhash": "0x866b94d6c4f292d309627942aa721ce4a7a0a51e9f28c8a386cf54cc1144d2d1", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -7452,9 +11384,9 @@ "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9", + "0x01": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b", "0x02": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306", - "0x04": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9", + "0x04": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b", "0x05": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306" } }, @@ -7475,9 +11407,9 @@ }, "sealEngine": "NoProof" }, - "057-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_af8b75f664ed7d43": { + "087-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_cae5d3491190b777": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -7508,19 +11440,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d93fbab040008567a3edeaa58e67bee598855e01402491e32f55c975542392a9a05ae8bcb5296c1c9e86d53b331a53322074ae26fb50ce7fd4074ad6504c4e854aa0f91c3d227b7dd5018ec562a377541ab822d8b42bb7b9be413107620c7f882e25b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b360c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5000000000000000000000000000000000000000000000000000000000000000264d3b6baf69395bde2abd1d43f99be66bc64581234fd363e2ae3a0d419cfc3fcb09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440efa80216e6ca6221a11f1a0417387eaba6571d2cfdfa338d69d173923d8722fa8394bf9ab487d2a155d1def23a512ef5a3c001a07286395d87b2331ef76c7160adf6317bb5d3ff284632ba3861a4ac2cfc9ec464a039aeceebebc37a0bc3f4b611e9c1b559622fc5ed0841b43f7bc77d4a97b7172fc0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0061e42f21db8b723aff80ad17aeab3e981a4ca4eddcb3d187cd6d8ffdb6fcc78a06b9b49172b85dc42d664a601ee9943084e12a5c5a093a5056bc8f8889fd75418a0087892738f75126ba814bd80218bd4f9ee0f6f5ce72052f19ba2e6ad255b0069b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028c920c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c622c9ae4f1d6d08558d7027df9cc6b248c21290075d2c0df8a4084d02090b3fa14b49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193aa4cc8c419ade0cf043cbf30f43c8f7ee6da3ab8d2c15070f323e5a13a8178fe07c8f89686e5fd16565247b520028251bc080a08bcafbc1facaa4cb6741a2d82139f20782aa8eb8cfba39d87a43c9e8a0dbe363a024a6f44071130a7ae0dabb24d83771d93d8d9314a5d5c1a58d1131a27bc14a8ac0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xd93fbab040008567a3edeaa58e67bee598855e01402491e32f55c975542392a9", - "transactionsTrie": "0x5ae8bcb5296c1c9e86d53b331a53322074ae26fb50ce7fd4074ad6504c4e854a", - "receiptTrie": "0xf91c3d227b7dd5018ec562a377541ab822d8b42bb7b9be413107620c7f882e25", + "stateRoot": "0x061e42f21db8b723aff80ad17aeab3e981a4ca4eddcb3d187cd6d8ffdb6fcc78", + "transactionsTrie": "0x6b9b49172b85dc42d664a601ee9943084e12a5c5a093a5056bc8f8889fd75418", + "receiptTrie": "0x087892738f75126ba814bd80218bd4f9ee0f6f5ce72052f19ba2e6ad255b0069", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x028b36", + "gasUsed": "0x028c92", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -7530,7 +11462,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x8ae29cd864d48ff784bd87b8d684bbf852ee9bfe097ef4cc1c215dafcfba0e0e" + "hash": "0x05839413c2c7c0c4cc002fa6486e22f6661a90383d634d9964c87c09ed7507da" }, "blocknumber": "1", "transactions": [ @@ -7543,11 +11475,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5000000000000000000000000000000000000000000000000000000000000000264d3b6baf69395bde2abd1d43f99be66bc64581234fd363e2ae3a0d419cfc3fcb09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440efa80216e6ca6221a11f1a0417387eaba6571d2cfdfa338d69d173923d8722fa8394bf9ab487d2a155d1def23a512ef5a3", + "data": "0x01228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c622c9ae4f1d6d08558d7027df9cc6b248c21290075d2c0df8a4084d02090b3fa14b49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193aa4cc8c419ade0cf043cbf30f43c8f7ee6da3ab8d2c15070f323e5a13a8178fe07c8f89686e5fd16565247b520028251b", "accessList": [], - "v": "0x01", - "r": "0x7286395d87b2331ef76c7160adf6317bb5d3ff284632ba3861a4ac2cfc9ec464", - "s": "0x39aeceebebc37a0bc3f4b611e9c1b559622fc5ed0841b43f7bc77d4a97b7172f", + "v": "0x00", + "r": "0x8bcafbc1facaa4cb6741a2d82139f20782aa8eb8cfba39d87a43c9e8a0dbe363", + "s": "0x24a6f44071130a7ae0dabb24d83771d93d8d9314a5d5c1a58d1131a27bc14a8a", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -7555,7 +11487,7 @@ "withdrawals": [] } ], - "lastblockhash": "0x8ae29cd864d48ff784bd87b8d684bbf852ee9bfe097ef4cc1c215dafcfba0e0e", + "lastblockhash": "0x05839413c2c7c0c4cc002fa6486e22f6661a90383d634d9964c87c09ed7507da", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -7582,10 +11514,10 @@ "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5", - "0x02": "0x02", - "0x04": "0x01d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5", - "0x05": "0x02" + "0x01": "0x01228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e", + "0x02": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62", + "0x04": "0x01228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e", + "0x05": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62" } }, "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { @@ -7598,16 +11530,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee3186", + "balance": "0xffffffffffffee2802", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "058-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_b6cb6698327d9835": { + "088-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_d0992bc0387790a4": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -7638,19 +11570,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa063ca4ee1ef936fcfcddb55f47d7b2902bfa3d7855d6a9b3b19cc55785d85e971a0673f860c241b4cf79b81665e211541ce7686b5c558879f23ad08102b22db8ec5a0f91c3d227b7dd5018ec562a377541ab822d8b42bb7b9be413107620c7f882e25b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b360c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b900000000000000000000000000000000000000000000000000000000000000026a75e4fe63e5e148c853462a680c3e3ccedea34719d28f19bf1b35ae4eea37d6a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca7abacbdcba60523fdc84ed1a32bb770f610f8b284d875479918c2fe397e04eb52ecc0f1ff0029f9466ffe5b278b8fecc3c001a05a9dd8e077028eb136811b6931c933d79db0e6a6bdeb8aa9a0dc6655f7f45a46a030ac7caa8cf5388f9c528aa6baa30292a9f912da23cbb05d43e2a1f1457c36aac0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a77e2b492532b64b86b9dcce607e770834cc0c4a7fd076e43df2f4fbb7522e35a04943b7c3bdde613d3334ec74191ff4e6dbe8b9ad6e11e9489b04438d00353d2ba08b7c217608f6432544e6a1adc0d96e91ba07f23c82941754aaf9783f4b89de84b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028caa0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c624882cf0609af8c7cd4c256e63a35838c95a9ebbf6122540ab344b42fd66d32e18f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b8f731ba6a52e419ffc843c50d2947d30e933e3a881b208de54149714ece74a599503f84c6249b5fd8a7c70189882a6bc080a041d65377829837a1adab9efd7d6b34c00140bfa4dbbf5053348e12652e6a4965a060900e4e68a9787aaac7a45314c939c204ee41d3e5fa99fd463f47cbebfd6d9ec0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x63ca4ee1ef936fcfcddb55f47d7b2902bfa3d7855d6a9b3b19cc55785d85e971", - "transactionsTrie": "0x673f860c241b4cf79b81665e211541ce7686b5c558879f23ad08102b22db8ec5", - "receiptTrie": "0xf91c3d227b7dd5018ec562a377541ab822d8b42bb7b9be413107620c7f882e25", + "stateRoot": "0xa77e2b492532b64b86b9dcce607e770834cc0c4a7fd076e43df2f4fbb7522e35", + "transactionsTrie": "0x4943b7c3bdde613d3334ec74191ff4e6dbe8b9ad6e11e9489b04438d00353d2b", + "receiptTrie": "0x8b7c217608f6432544e6a1adc0d96e91ba07f23c82941754aaf9783f4b89de84", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x028b36", + "gasUsed": "0x028caa", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -7660,7 +11592,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xa975a49b0be77170ceded7f5ca609a2334868660a38c83eb6114d6368c380e20" + "hash": "0x9198e5aca01694d50428deac8ff3befe2ff2f46f92bd0a4b705e7bd154312a7d" }, "blocknumber": "1", "transactions": [ @@ -7673,11 +11605,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b900000000000000000000000000000000000000000000000000000000000000026a75e4fe63e5e148c853462a680c3e3ccedea34719d28f19bf1b35ae4eea37d6a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca7abacbdcba60523fdc84ed1a32bb770f610f8b284d875479918c2fe397e04eb52ecc0f1ff0029f9466ffe5b278b8fecc3", + "data": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c624882cf0609af8c7cd4c256e63a35838c95a9ebbf6122540ab344b42fd66d32e18f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b8f731ba6a52e419ffc843c50d2947d30e933e3a881b208de54149714ece74a599503f84c6249b5fd8a7c70189882a6b", "accessList": [], - "v": "0x01", - "r": "0x5a9dd8e077028eb136811b6931c933d79db0e6a6bdeb8aa9a0dc6655f7f45a46", - "s": "0x30ac7caa8cf5388f9c528aa6baa30292a9f912da23cbb05d43e2a1f1457c36aa", + "v": "0x00", + "r": "0x41d65377829837a1adab9efd7d6b34c00140bfa4dbbf5053348e12652e6a4965", + "s": "0x60900e4e68a9787aaac7a45314c939c204ee41d3e5fa99fd463f47cbebfd6d9e", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -7685,7 +11617,7 @@ "withdrawals": [] } ], - "lastblockhash": "0xa975a49b0be77170ceded7f5ca609a2334868660a38c83eb6114d6368c380e20", + "lastblockhash": "0x9198e5aca01694d50428deac8ff3befe2ff2f46f92bd0a4b705e7bd154312a7d", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -7712,10 +11644,10 @@ "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9", - "0x02": "0x02", - "0x04": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9", - "0x05": "0x02" + "0x01": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b", + "0x02": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62", + "0x04": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b", + "0x05": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62" } }, "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { @@ -7728,16 +11660,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee3186", + "balance": "0xffffffffffffee275a", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "059-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_b6ec3736f9ff2c62": { + "089-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_d736268229bd87ec": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -7768,19 +11700,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d9eb050c226daea1f5a4a5055cc899aea74b7538ab2f7463bc1069f4ac253d5ea05288bdd2ef8768bb8a242ca43c73dbae4a858c8f4963142f71da81e6625717dda0281d011e3703d82d12e71bfe03d8ec373698d75050e7ed8b449760541deb8771b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b1e0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363060000000000000000000000000000000000000000000000000000000000000000b09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440ef831cc31c152e768eb8c2fd2d0c04003e7abc66b2c3f4cc7fc2b3426b4a698dc2a5e5161dfb841ad17cd09be61b33987bc080a09055b3a1e37861e12edc8174fbefff93226de35b7c3a32c949385da2104a58eda0524b4f4e311c6021899859eb32a28e7e14c4d6cae56af35452f60140bbab0a8cc0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cb9e12dda586addf8d45fb0620d5e4e5530e9eea47791eff168ebe7748709f55a0340072b85a86def90391840844ed222ee1070a4aaaf16c9fe2ff56438abecddda0a32384732813825eae70978f9a5ebdb708ef7bfa4276e4416720574e93b29ec2b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028c9e0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c625fd58150b731b4facfcdd89c0e393ff842f5f2071303eff99b51e103161cd23393efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f14655684c349506215a2d55f9d06f475b8229c6dedc08fd467f41fabae6bb042c2d0dbdbcd5f7532c475e479588eec5820fd37c080a04f5cbdea7c949e07ff124ecabd0fd003118b4830e1741231a7bf7701b4d8ee79a0560d6c4459cfb2b748f1b85745c953ed096c14b4bce5a931dacc8f4dfdd858a9c0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xd9eb050c226daea1f5a4a5055cc899aea74b7538ab2f7463bc1069f4ac253d5e", - "transactionsTrie": "0x5288bdd2ef8768bb8a242ca43c73dbae4a858c8f4963142f71da81e6625717dd", - "receiptTrie": "0x281d011e3703d82d12e71bfe03d8ec373698d75050e7ed8b449760541deb8771", + "stateRoot": "0xcb9e12dda586addf8d45fb0620d5e4e5530e9eea47791eff168ebe7748709f55", + "transactionsTrie": "0x340072b85a86def90391840844ed222ee1070a4aaaf16c9fe2ff56438abecddd", + "receiptTrie": "0xa32384732813825eae70978f9a5ebdb708ef7bfa4276e4416720574e93b29ec2", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x028b1e", + "gasUsed": "0x028c9e", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -7790,7 +11722,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xbbe1d784e46be6d8d26e3317349d1bfa5a3f73699704569513472ee753e1ceb0" + "hash": "0xbf2fe0b35344f436a53566abcbf196e3346e629bf85b1ccb6122aaa6c3f1013f" }, "blocknumber": "1", "transactions": [ @@ -7803,11 +11735,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363060000000000000000000000000000000000000000000000000000000000000000b09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440ef831cc31c152e768eb8c2fd2d0c04003e7abc66b2c3f4cc7fc2b3426b4a698dc2a5e5161dfb841ad17cd09be61b33987b", + "data": "0x01ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c625fd58150b731b4facfcdd89c0e393ff842f5f2071303eff99b51e103161cd23393efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f14655684c349506215a2d55f9d06f475b8229c6dedc08fd467f41fabae6bb042c2d0dbdbcd5f7532c475e479588eec5820fd37", "accessList": [], "v": "0x00", - "r": "0x9055b3a1e37861e12edc8174fbefff93226de35b7c3a32c949385da2104a58ed", - "s": "0x524b4f4e311c6021899859eb32a28e7e14c4d6cae56af35452f60140bbab0a8c", + "r": "0x4f5cbdea7c949e07ff124ecabd0fd003118b4830e1741231a7bf7701b4d8ee79", + "s": "0x560d6c4459cfb2b748f1b85745c953ed096c14b4bce5a931dacc8f4dfdd858a9", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -7815,7 +11747,7 @@ "withdrawals": [] } ], - "lastblockhash": "0xbbe1d784e46be6d8d26e3317349d1bfa5a3f73699704569513472ee753e1ceb0", + "lastblockhash": "0xbf2fe0b35344f436a53566abcbf196e3346e629bf85b1ccb6122aaa6c3f1013f", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -7842,10 +11774,10 @@ "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5", - "0x02": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306", - "0x04": "0x01d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5", - "0x05": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306" + "0x01": "0x01ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef", + "0x02": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62", + "0x04": "0x01ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef", + "0x05": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62" } }, "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { @@ -7858,16 +11790,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee322e", + "balance": "0xffffffffffffee27ae", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "060-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_becf2e1641bbd4e6": { + "090-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_e68d7111a2364a49": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -7898,19 +11830,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa094d412bd70586706283cb2b03b7f775fabb1edffafe081383caa770e46650edfa04ddc20059aa6c603a53e14ef3dfd107de7e4006cbcd47fd42eca705bdc222d1ba0b2c5ad406e8ea715c8495b834c90c372db84f259009e93c85422e0e1b9203fa4b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028c7a0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c05eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c6273eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc001a03273576d50c19ea38badedb55c53e83a9da2282ca86a1b56df6111a939c0a83ca07fe8ecbf7fc1cc72ae1abc6cad0714476b3dd2fbb64281aab1758e15fbccce3dc0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a6ba82bbb29fd8699921ecc6f2fb64c0e8927d68b29486b12ee863a03f89090ba08dcb7d350e47478f64fe140d44248afada8290fa1b89bdb4dc7e8caa15ab8178a00854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b420c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b0000000000000000000000000000000000000000000000000000000000000002549345dd3612e36fab0ab7baffe3faa5b820d56b71348c89ecaf63f7c4f853708f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b794fce36bf7e9f0ed981728fcd829013de96f7d25f8b4fe885059ec24af36f801ffbf68ec4604ef6e5f5f800f5cf31238c080a0067323404069e69388d57089f941d19d87c6e0c6d02cc5abb5555b2647cd0e5ca033c29ae9776ef9a261652a5ba6a905d7b17c612e9719b3445b8b95b20c1c76edc0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x94d412bd70586706283cb2b03b7f775fabb1edffafe081383caa770e46650edf", - "transactionsTrie": "0x4ddc20059aa6c603a53e14ef3dfd107de7e4006cbcd47fd42eca705bdc222d1b", - "receiptTrie": "0xb2c5ad406e8ea715c8495b834c90c372db84f259009e93c85422e0e1b9203fa4", + "stateRoot": "0xa6ba82bbb29fd8699921ecc6f2fb64c0e8927d68b29486b12ee863a03f89090b", + "transactionsTrie": "0x8dcb7d350e47478f64fe140d44248afada8290fa1b89bdb4dc7e8caa15ab8178", + "receiptTrie": "0x0854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x028c7a", + "gasUsed": "0x028b42", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -7920,7 +11852,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x9b79deee26ea9713ef9804f99ab10b4e9d89bcc723bcce6d122d4ea45cc7f6a4" + "hash": "0x1717088bddecb58a090f9ca15d02634e4295dc0cc1fa823bd3966dc2ffcd8dfc" }, "blocknumber": "1", "transactions": [ @@ -7933,11 +11865,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c05eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c6273eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb", + "data": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b0000000000000000000000000000000000000000000000000000000000000002549345dd3612e36fab0ab7baffe3faa5b820d56b71348c89ecaf63f7c4f853708f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b794fce36bf7e9f0ed981728fcd829013de96f7d25f8b4fe885059ec24af36f801ffbf68ec4604ef6e5f5f800f5cf31238", "accessList": [], - "v": "0x01", - "r": "0x3273576d50c19ea38badedb55c53e83a9da2282ca86a1b56df6111a939c0a83c", - "s": "0x7fe8ecbf7fc1cc72ae1abc6cad0714476b3dd2fbb64281aab1758e15fbccce3d", + "v": "0x00", + "r": "0x067323404069e69388d57089f941d19d87c6e0c6d02cc5abb5555b2647cd0e5c", + "s": "0x33c29ae9776ef9a261652a5ba6a905d7b17c612e9719b3445b8b95b20c1c76ed", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -7945,7 +11877,7 @@ "withdrawals": [] } ], - "lastblockhash": "0x9b79deee26ea9713ef9804f99ab10b4e9d89bcc723bcce6d122d4ea45cc7f6a4", + "lastblockhash": "0x1717088bddecb58a090f9ca15d02634e4295dc0cc1fa823bd3966dc2ffcd8dfc", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -7972,10 +11904,10 @@ "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", - "0x02": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62", - "0x04": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", - "0x05": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62" + "0x01": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b", + "0x02": "0x02", + "0x04": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b", + "0x05": "0x02" } }, "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { @@ -7988,16 +11920,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee28aa", + "balance": "0xffffffffffffee3132", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "061-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_c3d4322ec17fe7cd": { + "091-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_ed6b180ec759bcf6": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -8028,19 +11960,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa08a6b56609fcfb592b1f7752666848a20c36e1dce8acb5e0c82e61e8c9e5f3f8ea04956ae2560cb5eea655bfc31852c85788567e45b96eea8cb216c67b03b814afda01cd77ad11d984b1ea60bb6b46188fdd129a9959acf194326fd53416ac732ca4cb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301ec0a0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc080a08dcecbb5ef87b5431d38477cc01452a1a9a0326a95616a4308bb60573f1ee351a01e2b665403ad29dc09832d1d1d65e9721d57157fbcfc64fe0a18a5959db92968c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04c44b5e39b37b8cb502c941cdfec15123d1d2e70da484cae70df18eb43c5878da03cbb8f64c21f3488dc3a17ed5cfbeac187a9673e40ecb4c73fbcc4dceae467dea0a32384732813825eae70978f9a5ebdb708ef7bfa4276e4416720574e93b29ec2b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028c9e0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f15eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c625ee1e9a4a06a02ca6ea14b0ca73415a8ba0fba888f18dde56df499b480d4b9e0a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06b3477fc9a5bfab5fdb5523251818ee5a6d52613c59502a3d2df58217f4e366cd9ef37dee55bf2c705a2b08e7808b6fa0c001a00e22855a71f7c31650eaf8335938ee97e916da21566e14046da73b02b0d161c6a070b1f23ed27aa070cbdda6e8df2d8a90a2144f997b5c6ef2cfbc6e3c84ae53c1c0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x8a6b56609fcfb592b1f7752666848a20c36e1dce8acb5e0c82e61e8c9e5f3f8e", - "transactionsTrie": "0x4956ae2560cb5eea655bfc31852c85788567e45b96eea8cb216c67b03b814afd", - "receiptTrie": "0x1cd77ad11d984b1ea60bb6b46188fdd129a9959acf194326fd53416ac732ca4c", + "stateRoot": "0x4c44b5e39b37b8cb502c941cdfec15123d1d2e70da484cae70df18eb43c5878d", + "transactionsTrie": "0x3cbb8f64c21f3488dc3a17ed5cfbeac187a9673e40ecb4c73fbcc4dceae467de", + "receiptTrie": "0xa32384732813825eae70978f9a5ebdb708ef7bfa4276e4416720574e93b29ec2", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x01ec0a", + "gasUsed": "0x028c9e", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -8050,7 +11982,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xa7ca4860d8c32c47d4a939ab3262cb5f64c081ab792980f37f37aa9df6471931" + "hash": "0x77fe6f82e9e181674653ca4d9b339fcd0ea15b3f3d4e326bb9bc0073361474f9" }, "blocknumber": "1", "transactions": [ @@ -8063,11 +11995,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb", + "data": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f15eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c625ee1e9a4a06a02ca6ea14b0ca73415a8ba0fba888f18dde56df499b480d4b9e0a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06b3477fc9a5bfab5fdb5523251818ee5a6d52613c59502a3d2df58217f4e366cd9ef37dee55bf2c705a2b08e7808b6fa0", "accessList": [], - "v": "0x00", - "r": "0x8dcecbb5ef87b5431d38477cc01452a1a9a0326a95616a4308bb60573f1ee351", - "s": "0x1e2b665403ad29dc09832d1d1d65e9721d57157fbcfc64fe0a18a5959db92968", + "v": "0x01", + "r": "0x0e22855a71f7c31650eaf8335938ee97e916da21566e14046da73b02b0d161c6", + "s": "0x70b1f23ed27aa070cbdda6e8df2d8a90a2144f997b5c6ef2cfbc6e3c84ae53c1", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -8075,7 +12007,7 @@ "withdrawals": [] } ], - "lastblockhash": "0xa7ca4860d8c32c47d4a939ab3262cb5f64c081ab792980f37f37aa9df6471931", + "lastblockhash": "0x77fe6f82e9e181674653ca4d9b339fcd0ea15b3f3d4e326bb9bc0073361474f9", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -8102,8 +12034,10 @@ "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014", - "0x04": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014" + "0x01": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1", + "0x02": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62", + "0x04": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1", + "0x05": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62" } }, "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { @@ -8116,16 +12050,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xfffffffffffff28bba", + "balance": "0xffffffffffffee27ae", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "062-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_c5e1490d672d026d": { + "092-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_f0ed3dc11cdeb130": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -8156,19 +12090,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06cabaf6cbb5545c271489c426dd41879dfaea5e512ad5906d631ac5e3cbd2db0a051c745c9a4be1d3f164a4e28eae02c034a5e6baf5022bf58f5200a8aed25da40a09fc500ac1e9d91018d2eb0c7325b94c3ad5e3cf88c8354bedb47e138ba1ad117b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028cb60c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d3630624d25032e67a7e6a4910df5834b8fe70e6bcfeeac0352434196bdf4b2485d5a1978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d165687565480680c0d129b845321df0c5b09d06d5cee182cf743783f33d7927735e91a08a4055b4053be9cb84ba370ea275f4b91da2bfc080a01fe8e9d5179e43ab6d566bffededfeaabd68db720b2df3d6155eb00445d15830a051924536cc2eb63e70a8e0c900c2e62eaa248b2f08f9678216652222375efc3cc0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa012a96687713d87fcb8dbff4ab41fd84072b423a790fd590a8b48c1b68f203430a0969fc262711bb984324b938f6758d2061a90cc922ccd6ab53c59fa054ab63161a015a792a3e4a2a7bf4e5203d28c75ccc9a1e08c1c67baa29ce3a1185c584b55e2b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301efb20c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e00000000000000000000000000000000000000000000000000000000000000001ed7d14d1b3fb1a1890d67b81715531553ad798df2009b4311d9fe2bea6cb964b49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193a98e15cbf800b69b90bfcaf1d907a9889c7743f7e5a19ee4b557471c005600f56d78e3dd887b2f5b87d76405b80dd2115c080a0095e1cc40213a480ea2851dfccecfef669a825673679ed086612336af0beacdfa0664a24c68797b38dc135d4705a58c6132853afe099432ad2d8384f9609281bbac0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x6cabaf6cbb5545c271489c426dd41879dfaea5e512ad5906d631ac5e3cbd2db0", - "transactionsTrie": "0x51c745c9a4be1d3f164a4e28eae02c034a5e6baf5022bf58f5200a8aed25da40", - "receiptTrie": "0x9fc500ac1e9d91018d2eb0c7325b94c3ad5e3cf88c8354bedb47e138ba1ad117", + "stateRoot": "0x12a96687713d87fcb8dbff4ab41fd84072b423a790fd590a8b48c1b68f203430", + "transactionsTrie": "0x969fc262711bb984324b938f6758d2061a90cc922ccd6ab53c59fa054ab63161", + "receiptTrie": "0x15a792a3e4a2a7bf4e5203d28c75ccc9a1e08c1c67baa29ce3a1185c584b55e2", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x028cb6", + "gasUsed": "0x01efb2", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -8178,7 +12112,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xca27b8c1cdcf74c49e1324e487be699f5c96316dfc3341d8b3c2011bca431aa8" + "hash": "0x15b8eb47108f60520cf41b35d331598de50524890fe113f9c69c51339402f65a" }, "blocknumber": "1", "transactions": [ @@ -8191,11 +12125,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d3630624d25032e67a7e6a4910df5834b8fe70e6bcfeeac0352434196bdf4b2485d5a1978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d165687565480680c0d129b845321df0c5b09d06d5cee182cf743783f33d7927735e91a08a4055b4053be9cb84ba370ea275f4b91da2bf", + "data": "0x01228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e00000000000000000000000000000000000000000000000000000000000000001ed7d14d1b3fb1a1890d67b81715531553ad798df2009b4311d9fe2bea6cb964b49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193a98e15cbf800b69b90bfcaf1d907a9889c7743f7e5a19ee4b557471c005600f56d78e3dd887b2f5b87d76405b80dd2115", "accessList": [], "v": "0x00", - "r": "0x1fe8e9d5179e43ab6d566bffededfeaabd68db720b2df3d6155eb00445d15830", - "s": "0x51924536cc2eb63e70a8e0c900c2e62eaa248b2f08f9678216652222375efc3c", + "r": "0x095e1cc40213a480ea2851dfccecfef669a825673679ed086612336af0beacdf", + "s": "0x664a24c68797b38dc135d4705a58c6132853afe099432ad2d8384f9609281bba", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -8203,7 +12137,7 @@ "withdrawals": [] } ], - "lastblockhash": "0xca27b8c1cdcf74c49e1324e487be699f5c96316dfc3341d8b3c2011bca431aa8", + "lastblockhash": "0x15b8eb47108f60520cf41b35d331598de50524890fe113f9c69c51339402f65a", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -8230,10 +12164,8 @@ "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb", - "0x02": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306", - "0x04": "0x01d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb", - "0x05": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306" + "0x01": "0x01228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e", + "0x04": "0x01228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e" } }, "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { @@ -8246,16 +12178,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee2706", + "balance": "0xfffffffffffff27222", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "063-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_cae5d3491190b777": { + "093-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_f47eb9fc139f6bfd": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -8286,19 +12218,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa08bc8847f05a285b40e6d9ef998f34f48b2ddea75570837eaba92fb31929dcc63a09674cfa1ac60e3f323cefdbe1f455380fed3f446dd2190e29bf499514c4ecd92a0a32384732813825eae70978f9a5ebdb708ef7bfa4276e4416720574e93b29ec2b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028c9e0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b95eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c622c9ae4f1d6d08558d7027df9cc6b248c21290075d2c0df8a4084d02090b3fa14a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca7af62efd28d2f6a4d044da3db338612b43f453b7746999c7501f5be48c1dce51e481b5cfe5ec93f90264ba0655782ffe9c001a05af3651144b6db2d2b4486ebc7d37c5036e0187b78113d17483c17e7474686eca051d5ed9810bac2f80217a8cafb605d6088551cedd4611961368380500a834e9bc0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa080463fa21af9bb16b8019e8c192c63860bb83ca4b7c879b2df6b7f2b4151ba50a0b01a58e525e5c8e075b9cf95fd78c5876f82c6149b3c273299d8370144497550a00854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b420c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b000000000000000000000000000000000000000000000000000000000000000160f840641ec0d0c0d2b77b2d5a393b329442721fad05ab78c7b98f2aa3c20ec98f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b798613e9e1b1ed52fc2fdc54e945b863ff52870e6565307ff9e32327196d7a03c428fc51a9abedc97de2a68daa1274b50c001a00b1dd21bc52e26bc253461aac815ad347ba3b80b031e64585a3f509f29def9dda04e86e016839d180a695392d3b3f3bf91f8fcb23e155f7edf2c67363c66e4c1e1c0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x8bc8847f05a285b40e6d9ef998f34f48b2ddea75570837eaba92fb31929dcc63", - "transactionsTrie": "0x9674cfa1ac60e3f323cefdbe1f455380fed3f446dd2190e29bf499514c4ecd92", - "receiptTrie": "0xa32384732813825eae70978f9a5ebdb708ef7bfa4276e4416720574e93b29ec2", + "stateRoot": "0x80463fa21af9bb16b8019e8c192c63860bb83ca4b7c879b2df6b7f2b4151ba50", + "transactionsTrie": "0xb01a58e525e5c8e075b9cf95fd78c5876f82c6149b3c273299d8370144497550", + "receiptTrie": "0x0854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x028c9e", + "gasUsed": "0x028b42", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -8308,7 +12240,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x2cb32d117d8470b9808f860b4be57633d5b34b5dcc88b1069bfbe3ae2cf97546" + "hash": "0x2a2092031e6b32783ea664a205cad86d69e348005f0fdb8c2443cbbe5d56a127" }, "blocknumber": "1", "transactions": [ @@ -8321,11 +12253,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b95eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c622c9ae4f1d6d08558d7027df9cc6b248c21290075d2c0df8a4084d02090b3fa14a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca7af62efd28d2f6a4d044da3db338612b43f453b7746999c7501f5be48c1dce51e481b5cfe5ec93f90264ba0655782ffe9", + "data": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b000000000000000000000000000000000000000000000000000000000000000160f840641ec0d0c0d2b77b2d5a393b329442721fad05ab78c7b98f2aa3c20ec98f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b798613e9e1b1ed52fc2fdc54e945b863ff52870e6565307ff9e32327196d7a03c428fc51a9abedc97de2a68daa1274b50", "accessList": [], "v": "0x01", - "r": "0x5af3651144b6db2d2b4486ebc7d37c5036e0187b78113d17483c17e7474686ec", - "s": "0x51d5ed9810bac2f80217a8cafb605d6088551cedd4611961368380500a834e9b", + "r": "0x0b1dd21bc52e26bc253461aac815ad347ba3b80b031e64585a3f509f29def9dd", + "s": "0x4e86e016839d180a695392d3b3f3bf91f8fcb23e155f7edf2c67363c66e4c1e1", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -8333,7 +12265,7 @@ "withdrawals": [] } ], - "lastblockhash": "0x2cb32d117d8470b9808f860b4be57633d5b34b5dcc88b1069bfbe3ae2cf97546", + "lastblockhash": "0x2a2092031e6b32783ea664a205cad86d69e348005f0fdb8c2443cbbe5d56a127", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -8360,10 +12292,10 @@ "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9", - "0x02": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62", - "0x04": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9", - "0x05": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62" + "0x01": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b", + "0x02": "0x01", + "0x04": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b", + "0x05": "0x01" } }, "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { @@ -8376,16 +12308,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee27ae", + "balance": "0xffffffffffffee3132", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "064-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_d0992bc0387790a4": { + "094-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_f7f44e1e864aa967": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -8416,19 +12348,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa034ad193f0d53a910a588eaa04668aaf454d9c5189613ac6b94b411648ed1e432a09d97580ee8b29fe3ee44720b3a5502979449602bbbff6996b27ed99f5916ef36a08b7c217608f6432544e6a1adc0d96e91ba07f23c82941754aaf9783f4b89de84b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028caa0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c624882cf0609af8c7cd4c256e63a35838c95a9ebbf6122540ab344b42fd66d32e1978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d165687565480695c51f028ec8ace94b2c24fff6662e4c61ad7b315b799aa5f40fcf5b36b2f1b6f9fc23bc66290aeef1de7e6ee4cb52cec080a06f62747110dce51e6ea06763ff0d52961db3eb0c11ae2841137c605385861120a02bdfbc2fe318f511607f42a1176179a26e32a173e06f7e47fb4dbcdee16d5432c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0281da5a4e5f358c7a345c9dc95ae20c8061cf7443c31b8b8fc950ece84a1c9a4a0fd89dc294337822d255b544c80ada149275e1b882b77123614c5ee9a1bfe91b6a0045c9ee148e58fc5d3cb7e47323007813d27acc179d7298fc678bb7fafaf52edb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301efbe0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b000000000000000000000000000000000000000000000000000000000000000061157104410181bdc6eac224aa9436ac268bdcfeecb6badf71d228adda820af38f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7a1d8f2a5ab22acdfc1a9492ee2e1c2cbde681b51b312bf718821937e5088cd8ee002b718264027d10c5c5855dabe0353c001a0d9ef3fce097d461df93b7c30d2c87be75223f06bed8d34140be5e5fa21f05c99a04833e5e03ebdaca7516110a8239582e5437a99cf909df4b0d9edd63906fef9dec0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x34ad193f0d53a910a588eaa04668aaf454d9c5189613ac6b94b411648ed1e432", - "transactionsTrie": "0x9d97580ee8b29fe3ee44720b3a5502979449602bbbff6996b27ed99f5916ef36", - "receiptTrie": "0x8b7c217608f6432544e6a1adc0d96e91ba07f23c82941754aaf9783f4b89de84", + "stateRoot": "0x281da5a4e5f358c7a345c9dc95ae20c8061cf7443c31b8b8fc950ece84a1c9a4", + "transactionsTrie": "0xfd89dc294337822d255b544c80ada149275e1b882b77123614c5ee9a1bfe91b6", + "receiptTrie": "0x045c9ee148e58fc5d3cb7e47323007813d27acc179d7298fc678bb7fafaf52ed", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x028caa", + "gasUsed": "0x01efbe", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -8438,7 +12370,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x703933c31f7594881e066aa7cbcad15e25857e07f5275c9d6689cd141ed8ced3" + "hash": "0x0e1f82cabf617e6eeb6aba9d9cab64de0451bd122adc791e3e7e9faf8c6f5321" }, "blocknumber": "1", "transactions": [ @@ -8451,11 +12383,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c624882cf0609af8c7cd4c256e63a35838c95a9ebbf6122540ab344b42fd66d32e1978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d165687565480695c51f028ec8ace94b2c24fff6662e4c61ad7b315b799aa5f40fcf5b36b2f1b6f9fc23bc66290aeef1de7e6ee4cb52ce", + "data": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b000000000000000000000000000000000000000000000000000000000000000061157104410181bdc6eac224aa9436ac268bdcfeecb6badf71d228adda820af38f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7a1d8f2a5ab22acdfc1a9492ee2e1c2cbde681b51b312bf718821937e5088cd8ee002b718264027d10c5c5855dabe0353", "accessList": [], - "v": "0x00", - "r": "0x6f62747110dce51e6ea06763ff0d52961db3eb0c11ae2841137c605385861120", - "s": "0x2bdfbc2fe318f511607f42a1176179a26e32a173e06f7e47fb4dbcdee16d5432", + "v": "0x01", + "r": "0xd9ef3fce097d461df93b7c30d2c87be75223f06bed8d34140be5e5fa21f05c99", + "s": "0x4833e5e03ebdaca7516110a8239582e5437a99cf909df4b0d9edd63906fef9de", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -8463,7 +12395,7 @@ "withdrawals": [] } ], - "lastblockhash": "0x703933c31f7594881e066aa7cbcad15e25857e07f5275c9d6689cd141ed8ced3", + "lastblockhash": "0x0e1f82cabf617e6eeb6aba9d9cab64de0451bd122adc791e3e7e9faf8c6f5321", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -8490,10 +12422,8 @@ "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb", - "0x02": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62", - "0x04": "0x01d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb", - "0x05": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62" + "0x01": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b", + "0x04": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b" } }, "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { @@ -8506,16 +12436,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee275a", + "balance": "0xfffffffffffff271ce", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "065-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_d736268229bd87ec": { + "095-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_ffa6e97b97146517": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -8546,19 +12476,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa094bae011c335ccbae4583573573abe573c36eecee4ceaa7312a541cb0dc3b26ba089e3f2e38b2654517083bee71b044f55d28fc4d2085a3b3acef88bfd32697697a0a32384732813825eae70978f9a5ebdb708ef7bfa4276e4416720574e93b29ec2b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028c9e0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc55eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c625fd58150b731b4facfcdd89c0e393ff842f5f2071303eff99b51e103161cd233b09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440efb8d91f1642376ff871e99eda3209fb7968520c5353522f31d1013e8925d05e7ea44f9117ccedfa03ef5f6fc8205080a7c001a09b2e5b4a99482889df72906e95764e37f693af4b2899382c26d50e7a33dcb3e8a02b9c1e23ad4b0aad8a239b8c1c6dcc9484b4ca3582396b0aa0264dc379b42eabc0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02dd557933b240a480c9441c933c9116de1a5515d7b87c3c99282890455041148a09e0ddd239d392d6f727334e86dbe6e14ee09f79fc5a700151247e4636365041aa04386b450bd7c63d7edd63ccdf927d98e9907cb98731f0391734b8adb8bb205adb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008302878e0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc001a08c2a5bec7de92d741f12030db06d2a4167e9de965113e485356cd4cc858095e6a007bd7af5a95fd1c7c0403a9873f0705e18ab779de27f7b920b7bfb059d83cd6ec0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x94bae011c335ccbae4583573573abe573c36eecee4ceaa7312a541cb0dc3b26b", - "transactionsTrie": "0x89e3f2e38b2654517083bee71b044f55d28fc4d2085a3b3acef88bfd32697697", - "receiptTrie": "0xa32384732813825eae70978f9a5ebdb708ef7bfa4276e4416720574e93b29ec2", + "stateRoot": "0x2dd557933b240a480c9441c933c9116de1a5515d7b87c3c99282890455041148", + "transactionsTrie": "0x9e0ddd239d392d6f727334e86dbe6e14ee09f79fc5a700151247e4636365041a", + "receiptTrie": "0x4386b450bd7c63d7edd63ccdf927d98e9907cb98731f0391734b8adb8bb205ad", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x028c9e", + "gasUsed": "0x02878e", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -8568,7 +12498,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf1870d27d77c8b48c6dbbe16c27ce6ba9a3d3bf56d394b369a7a97694d6ab77c" + "hash": "0x3f7330c6d30012b6c01931898acbedd22fb95978079119ee4065c70111287694" }, "blocknumber": "1", "transactions": [ @@ -8581,11 +12511,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc55eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c625fd58150b731b4facfcdd89c0e393ff842f5f2071303eff99b51e103161cd233b09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440efb8d91f1642376ff871e99eda3209fb7968520c5353522f31d1013e8925d05e7ea44f9117ccedfa03ef5f6fc8205080a7", + "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb", "accessList": [], "v": "0x01", - "r": "0x9b2e5b4a99482889df72906e95764e37f693af4b2899382c26d50e7a33dcb3e8", - "s": "0x2b9c1e23ad4b0aad8a239b8c1c6dcc9484b4ca3582396b0aa0264dc379b42eab", + "r": "0x8c2a5bec7de92d741f12030db06d2a4167e9de965113e485356cd4cc858095e6", + "s": "0x07bd7af5a95fd1c7c0403a9873f0705e18ab779de27f7b920b7bfb059d83cd6e", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -8593,7 +12523,7 @@ "withdrawals": [] } ], - "lastblockhash": "0xf1870d27d77c8b48c6dbbe16c27ce6ba9a3d3bf56d394b369a7a97694d6ab77c", + "lastblockhash": "0x3f7330c6d30012b6c01931898acbedd22fb95978079119ee4065c70111287694", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -8620,10 +12550,10 @@ "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5", - "0x02": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62", - "0x04": "0x01d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5", - "0x05": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62" + "0x01": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014", + "0x02": "0x01", + "0x04": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014", + "0x05": "0x01" } }, "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { @@ -8636,16 +12566,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee27ae", + "balance": "0xffffffffffffee4b1e", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "066-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_e68d7111a2364a49": { + "096-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_point_at_infinity_392169c16a2e5ef6": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -8676,19 +12606,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00af575650a77124aeff39acc0fa14af57862545c18b414e1e35ca2dd7c72c2c8a04e60f6172e67893b7f1badf5c2314709a64a9d1c92998fd276eedf9d56c52384a00854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b420c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb0000000000000000000000000000000000000000000000000000000000000002549345dd3612e36fab0ab7baffe3faa5b820d56b71348c89ecaf63f7c4f85370978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d1656875654806a99a3f7861e6350419e20be7018f518a54db5ec93698a2565b53e6303d3f99fad5559ed047ad09031b1b64111ac31b25c080a006399b8d32d14e1522ee76cf02d4bbc2be59eadaadbdc535f2eb9db3420a802ba036bd95dec675a1be2a68c5931aab856fea3e482cbc84d1524cb7b62fdf74734bc0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da270bf04ffe49b249cc831a7934e58a5439ec4655c9fc08bc874178c48e7dd6a0cf0526f58408133246b140bbf6c6cd40384721ba0278f4cdec84f6d9c739bf3aa0313fd85a62385fa633ce8b1277463d99221ff62346e916dfe75fd51cf4e6ab78b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028a160c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000304962b3598a0adf33189fdfd9789feab1096ff40006900400000003fffffffca421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a03837f331ef931a42d2bd503ccaec668d0a7af429aa8a2136a6c573f062458f70a00ea8b177eed412c3c780563d8e223612260c73e50b5346f975ca20b3e29b7ecfc0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x0af575650a77124aeff39acc0fa14af57862545c18b414e1e35ca2dd7c72c2c8", - "transactionsTrie": "0x4e60f6172e67893b7f1badf5c2314709a64a9d1c92998fd276eedf9d56c52384", - "receiptTrie": "0x0854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90", + "stateRoot": "0xda270bf04ffe49b249cc831a7934e58a5439ec4655c9fc08bc874178c48e7dd6", + "transactionsTrie": "0xcf0526f58408133246b140bbf6c6cd40384721ba0278f4cdec84f6d9c739bf3a", + "receiptTrie": "0x313fd85a62385fa633ce8b1277463d99221ff62346e916dfe75fd51cf4e6ab78", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x028b42", + "gasUsed": "0x028a16", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -8698,7 +12628,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xed035979e7aad9c363cf3170f7c815a9e2a1b30da55e99361eb0793e34529c1f" + "hash": "0x548d62acf8d2a905c85a08cf8f77154b0b76dff1eff163f7a41846c9eccfb27a" }, "blocknumber": "1", "transactions": [ @@ -8711,11 +12641,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb0000000000000000000000000000000000000000000000000000000000000002549345dd3612e36fab0ab7baffe3faa5b820d56b71348c89ecaf63f7c4f85370978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d1656875654806a99a3f7861e6350419e20be7018f518a54db5ec93698a2565b53e6303d3f99fad5559ed047ad09031b1b64111ac31b25", + "data": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000304962b3598a0adf33189fdfd9789feab1096ff40006900400000003fffffffca421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "accessList": [], - "v": "0x00", - "r": "0x06399b8d32d14e1522ee76cf02d4bbc2be59eadaadbdc535f2eb9db3420a802b", - "s": "0x36bd95dec675a1be2a68c5931aab856fea3e482cbc84d1524cb7b62fdf74734b", + "v": "0x01", + "r": "0x3837f331ef931a42d2bd503ccaec668d0a7af429aa8a2136a6c573f062458f70", + "s": "0x0ea8b177eed412c3c780563d8e223612260c73e50b5346f975ca20b3e29b7ecf", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -8723,7 +12653,7 @@ "withdrawals": [] } ], - "lastblockhash": "0xed035979e7aad9c363cf3170f7c815a9e2a1b30da55e99361eb0793e34529c1f", + "lastblockhash": "0x548d62acf8d2a905c85a08cf8f77154b0b76dff1eff163f7a41846c9eccfb27a", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -8750,10 +12680,10 @@ "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb", - "0x02": "0x02", - "0x04": "0x01d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb", - "0x05": "0x02" + "0x01": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1", + "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000", + "0x04": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1", + "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000" } }, "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { @@ -8766,16 +12696,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee3132", + "balance": "0xffffffffffffee3966", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "067-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_ed6b180ec759bcf6": { + "097-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_point_at_infinity_3c1e8b38219e3e12": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -8806,19 +12736,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa068f95302abe29257b97c5bab9ac50c73c8825b49a3daaa7acc1de1aef79ed112a0000691eac4000c3eea730513b6a2d9b797f30e420d04c607c9160ff8094945eda08b7c217608f6432544e6a1adc0d96e91ba07f23c82941754aaf9783f4b89de84b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028caa0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c625ee1e9a4a06a02ca6ea14b0ca73415a8ba0fba888f18dde56df499b480d4b9e0991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c9af9bbe2e73d18f879bcc0867b22e8ac255040a0e85e258b6a8243bc12aa526067d1762dddf18fb25a9fced1cbdd9a447c080a0f5bd82b9c967246a56e75ee72508ba8e72addc869c5c033cdb2764c2a92467a0a0269568ccd014a132cc6063d738a8eff2fa4a9a1afe406239b2da3aaa31701dacc0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa031a0af886db249a6ac069e774688d002210f1bdd5fcea7beee99ea1ad50159dea0f560637db06ff8a2aaf081b6d6cefe1fdbaacee532aa97dd83377edb7f766f37a07aedb86a7ca5e0d5f54c47999433049e8e614374dec3aa79bb5521ec5838fb12b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301ed7e0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1000000000000000000000000000000000000000000000000000000000000000050625ad853cc21ba40594f79591e5d35c445ecf9453014da6524c0cf6367c359a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a04e08c45058361f9bf900b2640430b0fd3960d2ac76885425b8b082479adcf2aea043a4feb89ff3a757f986129153eeec21464084c9ca5b3d63656d755969aeadd7c0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x68f95302abe29257b97c5bab9ac50c73c8825b49a3daaa7acc1de1aef79ed112", - "transactionsTrie": "0x000691eac4000c3eea730513b6a2d9b797f30e420d04c607c9160ff8094945ed", - "receiptTrie": "0x8b7c217608f6432544e6a1adc0d96e91ba07f23c82941754aaf9783f4b89de84", + "stateRoot": "0x31a0af886db249a6ac069e774688d002210f1bdd5fcea7beee99ea1ad50159de", + "transactionsTrie": "0xf560637db06ff8a2aaf081b6d6cefe1fdbaacee532aa97dd83377edb7f766f37", + "receiptTrie": "0x7aedb86a7ca5e0d5f54c47999433049e8e614374dec3aa79bb5521ec5838fb12", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x028caa", + "gasUsed": "0x01ed7e", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -8828,7 +12758,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x12adea8924aa245ba39b80e2d94dd4e905e5c66f13cc594f72805facec92946b" + "hash": "0xa33a8a4126c6e43aaf07049a8a51855f6bdcd70e3309445bfa0f9166bfdeb25c" }, "blocknumber": "1", "transactions": [ @@ -8841,11 +12771,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c625ee1e9a4a06a02ca6ea14b0ca73415a8ba0fba888f18dde56df499b480d4b9e0991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c9af9bbe2e73d18f879bcc0867b22e8ac255040a0e85e258b6a8243bc12aa526067d1762dddf18fb25a9fced1cbdd9a447", + "data": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1000000000000000000000000000000000000000000000000000000000000000050625ad853cc21ba40594f79591e5d35c445ecf9453014da6524c0cf6367c359a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "accessList": [], "v": "0x00", - "r": "0xf5bd82b9c967246a56e75ee72508ba8e72addc869c5c033cdb2764c2a92467a0", - "s": "0x269568ccd014a132cc6063d738a8eff2fa4a9a1afe406239b2da3aaa31701dac", + "r": "0x4e08c45058361f9bf900b2640430b0fd3960d2ac76885425b8b082479adcf2ae", + "s": "0x43a4feb89ff3a757f986129153eeec21464084c9ca5b3d63656d755969aeadd7", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -8853,7 +12783,7 @@ "withdrawals": [] } ], - "lastblockhash": "0x12adea8924aa245ba39b80e2d94dd4e905e5c66f13cc594f72805facec92946b", + "lastblockhash": "0xa33a8a4126c6e43aaf07049a8a51855f6bdcd70e3309445bfa0f9166bfdeb25c", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -8880,10 +12810,8 @@ "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff", - "0x02": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62", - "0x04": "0x010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff", - "0x05": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62" + "0x01": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1", + "0x04": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1" } }, "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { @@ -8896,16 +12824,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee275a", + "balance": "0xfffffffffffff2818e", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "068-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_f0ed3dc11cdeb130": { + "098-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_point_at_infinity_3c87ec986c2656c2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -8936,19 +12864,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07c7ae6e3b7e37fe03517d27b92b01a1a6f487a539f17d1c0578e6352563ce68ca0384530e2c7cb522ded9d8e1fc975a673f587ab97faa6edcdfcd6f546f2ace0e9a015a792a3e4a2a7bf4e5203d28c75ccc9a1e08c1c67baa29ce3a1185c584b55e2b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301efb20c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b900000000000000000000000000000000000000000000000000000000000000001ed7d14d1b3fb1a1890d67b81715531553ad798df2009b4311d9fe2bea6cb964a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca7a6b598c7936325f3d21e53c433720c65783d54bfddd83146f63247caba7aa25671641a9cc7b5a1ddcb229760f311cbb8c080a01014d16a615878d7b7c2875f83326490078db6f8fd6906de884050605f15df01a02e88ddff54a80578c4ccb0ab3ce79e55f433c769bc30028489cc74c17b252112c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa069a6e5ec9e61c0dd420f55278ea240758028c85e1ca425810052542752c0215ea05da848f7c3284e96c06410a160cb0338f9112fa6fe880e1142c8e5de7b62e5cea05b37d7654e25aee3dc6c36ef65ac2675a8bb354cfe7ad68d4f303ec1ebb3dff0b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028a760c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363066d928e13fe443e957d82e3e71d48cb65d51028eb4483e719bf8efcdf12f7c321a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a02b8972d475f2b8fd49d196ab6859ebc5088269cd9440c76ffa8b9e140703ea12a0188e3c6338bfb894197b95c85fb11e91645e1be92e2c219a25331db7d469aec0c0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x7c7ae6e3b7e37fe03517d27b92b01a1a6f487a539f17d1c0578e6352563ce68c", - "transactionsTrie": "0x384530e2c7cb522ded9d8e1fc975a673f587ab97faa6edcdfcd6f546f2ace0e9", - "receiptTrie": "0x15a792a3e4a2a7bf4e5203d28c75ccc9a1e08c1c67baa29ce3a1185c584b55e2", + "stateRoot": "0x69a6e5ec9e61c0dd420f55278ea240758028c85e1ca425810052542752c0215e", + "transactionsTrie": "0x5da848f7c3284e96c06410a160cb0338f9112fa6fe880e1142c8e5de7b62e5ce", + "receiptTrie": "0x5b37d7654e25aee3dc6c36ef65ac2675a8bb354cfe7ad68d4f303ec1ebb3dff0", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x01efb2", + "gasUsed": "0x028a76", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -8958,7 +12886,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x7e8497705b9a7e82a64bc80a54846927bb288cd536b5f829872b37c88dbbacea" + "hash": "0x2b1edfa630ff0fbf3ef5b1118b8aa64d9e8a0b7874ad0f19b158d09634017b70" }, "blocknumber": "1", "transactions": [ @@ -8971,11 +12899,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b900000000000000000000000000000000000000000000000000000000000000001ed7d14d1b3fb1a1890d67b81715531553ad798df2009b4311d9fe2bea6cb964a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca7a6b598c7936325f3d21e53c433720c65783d54bfddd83146f63247caba7aa25671641a9cc7b5a1ddcb229760f311cbb8", + "data": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363066d928e13fe443e957d82e3e71d48cb65d51028eb4483e719bf8efcdf12f7c321a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "accessList": [], "v": "0x00", - "r": "0x1014d16a615878d7b7c2875f83326490078db6f8fd6906de884050605f15df01", - "s": "0x2e88ddff54a80578c4ccb0ab3ce79e55f433c769bc30028489cc74c17b252112", + "r": "0x2b8972d475f2b8fd49d196ab6859ebc5088269cd9440c76ffa8b9e140703ea12", + "s": "0x188e3c6338bfb894197b95c85fb11e91645e1be92e2c219a25331db7d469aec0", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -8983,7 +12911,7 @@ "withdrawals": [] } ], - "lastblockhash": "0x7e8497705b9a7e82a64bc80a54846927bb288cd536b5f829872b37c88dbbacea", + "lastblockhash": "0x2b1edfa630ff0fbf3ef5b1118b8aa64d9e8a0b7874ad0f19b158d09634017b70", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -9010,8 +12938,10 @@ "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9", - "0x04": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9" + "0x01": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1", + "0x02": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306", + "0x04": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1", + "0x05": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306" } }, "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { @@ -9024,16 +12954,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xfffffffffffff27222", + "balance": "0xffffffffffffee36c6", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "069-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_f47eb9fc139f6bfd": { + "099-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_point_at_infinity_420f2a187ce77035": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -9064,19 +12994,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa080d19b8a97602c993869e6faaf6addd229bee4653c00e72595a20d68b44c5262a02473fc71fac6576b0825cd46e8d1a3bec85ce3634f393d15c7acb0ded63aeae3a00854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b420c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb000000000000000000000000000000000000000000000000000000000000000160f840641ec0d0c0d2b77b2d5a393b329442721fad05ab78c7b98f2aa3c20ec9978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d16568756548069331a4bf48d66edbf77db3778203ad7045ed762bcfb2fe3ded65763983208e78ec1ef255babab4b41875b9505d1fb129c001a0ccede97858b103429aa4ffcb178a984a75a67fae2fca85bb65ee612a23c1338ca07f2b4136051116784456c96450af3a2adf3168d0ed80c90007678fe464175306c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c45f6fbc1dc03631637a8cece1cea5fdcc40bd4ca04713f56fc26db31025c6c7a0a54fadc07d4cf9701c12295e2117c73aa6beaa3442e9e2a4d12ec9889979f2fea0cd5198e7bb94cb328dee8f6d5b1c67c93cbefde9ed36fc23a528d3999b175a6ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830289020c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f100000000000000000000000000000000000000000000000000000000000000022bf4e1f980eb94661a21affc4d7e6e56f214fe3e7dc4d20b98c66ffd43cabeb0a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a038c1c7740a7cef0ee95b036edef176f98e83d51c287b930066719b4339376215a04df8d685d6c1e87bd117c798cdb3f7f8986ab2d22d8da041be9e9482f3b7ce25c0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x80d19b8a97602c993869e6faaf6addd229bee4653c00e72595a20d68b44c5262", - "transactionsTrie": "0x2473fc71fac6576b0825cd46e8d1a3bec85ce3634f393d15c7acb0ded63aeae3", - "receiptTrie": "0x0854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90", + "stateRoot": "0xc45f6fbc1dc03631637a8cece1cea5fdcc40bd4ca04713f56fc26db31025c6c7", + "transactionsTrie": "0xa54fadc07d4cf9701c12295e2117c73aa6beaa3442e9e2a4d12ec9889979f2fe", + "receiptTrie": "0xcd5198e7bb94cb328dee8f6d5b1c67c93cbefde9ed36fc23a528d3999b175a6a", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x028b42", + "gasUsed": "0x028902", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -9086,7 +13016,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x224c7188788df46059ae7bda19789dda26674d52f2493ced242dd44ec975c867" + "hash": "0xd556640634eefa8a1cd89bd248b23bb61776413363e1058ffed38f9ffab59cce" }, "blocknumber": "1", "transactions": [ @@ -9099,11 +13029,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb000000000000000000000000000000000000000000000000000000000000000160f840641ec0d0c0d2b77b2d5a393b329442721fad05ab78c7b98f2aa3c20ec9978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d16568756548069331a4bf48d66edbf77db3778203ad7045ed762bcfb2fe3ded65763983208e78ec1ef255babab4b41875b9505d1fb129", + "data": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f100000000000000000000000000000000000000000000000000000000000000022bf4e1f980eb94661a21affc4d7e6e56f214fe3e7dc4d20b98c66ffd43cabeb0a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "accessList": [], - "v": "0x01", - "r": "0xccede97858b103429aa4ffcb178a984a75a67fae2fca85bb65ee612a23c1338c", - "s": "0x7f2b4136051116784456c96450af3a2adf3168d0ed80c90007678fe464175306", + "v": "0x00", + "r": "0x38c1c7740a7cef0ee95b036edef176f98e83d51c287b930066719b4339376215", + "s": "0x4df8d685d6c1e87bd117c798cdb3f7f8986ab2d22d8da041be9e9482f3b7ce25", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -9111,7 +13041,7 @@ "withdrawals": [] } ], - "lastblockhash": "0x224c7188788df46059ae7bda19789dda26674d52f2493ced242dd44ec975c867", + "lastblockhash": "0xd556640634eefa8a1cd89bd248b23bb61776413363e1058ffed38f9ffab59cce", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -9138,10 +13068,10 @@ "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb", - "0x02": "0x01", - "0x04": "0x01d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb", - "0x05": "0x01" + "0x01": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1", + "0x02": "0x02", + "0x04": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1", + "0x05": "0x02" } }, "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { @@ -9154,16 +13084,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee3132", + "balance": "0xffffffffffffee40f2", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "070-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_f7f44e1e864aa967": { + "100-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_point_at_infinity_83e53423a2dd93fe": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -9194,19 +13124,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0df5de17099779f44ada6ae819c585c4e1642e0cb7b19b596ffc0e9c6048cf416a01d7092ea700da38bb361b2a6d3a0c5e5202ec07197fe458abdca16667e16b724a0045c9ee148e58fc5d3cb7e47323007813d27acc179d7298fc678bb7fafaf52edb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301efbe0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb000000000000000000000000000000000000000000000000000000000000000061157104410181bdc6eac224aa9436ac268bdcfeecb6badf71d228adda820af3978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d1656875654806a2e739f11e3a85482c5a9941ac46608ddfe459b09fb21b81fcb8f0ac3993ac618639bff39aefb5356bee9ccd1a3ebb5cc080a01d7bc855cb0746f6efc3530efda15d083a449ab4d93ae0706f68ad0aa339ad07a0624576b1df2ec61e38f136790fb09d29cbaa84dc18e25f334a0a18a97af423dfc0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c8b05c7fb0c0e00514c76ad1d1e3fa080d521102a927079693c0b55a43fa10f0a0cdc60ad22ae1fe5004eb088ab2d59654d5b4628a7392c40c0c92c5f69e706839a04f151812b62aa8eff6f2c553aba828d87c739a8453016ed9ad095a5ec5044ec9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830288d20c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f100000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffea421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a0835d4b51ed0da335fd056fef9258d003fa59b9357aa385930f287dc279f00193a062a3974bc93b244e4d7892ae6f8d29ee2a1470ecf7458e559fb999d72171a901c0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xdf5de17099779f44ada6ae819c585c4e1642e0cb7b19b596ffc0e9c6048cf416", - "transactionsTrie": "0x1d7092ea700da38bb361b2a6d3a0c5e5202ec07197fe458abdca16667e16b724", - "receiptTrie": "0x045c9ee148e58fc5d3cb7e47323007813d27acc179d7298fc678bb7fafaf52ed", + "stateRoot": "0xc8b05c7fb0c0e00514c76ad1d1e3fa080d521102a927079693c0b55a43fa10f0", + "transactionsTrie": "0xcdc60ad22ae1fe5004eb088ab2d59654d5b4628a7392c40c0c92c5f69e706839", + "receiptTrie": "0x4f151812b62aa8eff6f2c553aba828d87c739a8453016ed9ad095a5ec5044ec9", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x01efbe", + "gasUsed": "0x0288d2", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -9216,7 +13146,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x9db29d1202ee1f9433d07b7caf77efba99a03406906bf9247ba0799bbcacfbe6" + "hash": "0xf25678a0c17933929b30a471db876d8953df067cb31f266037edc299dc5099a2" }, "blocknumber": "1", "transactions": [ @@ -9229,11 +13159,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb000000000000000000000000000000000000000000000000000000000000000061157104410181bdc6eac224aa9436ac268bdcfeecb6badf71d228adda820af3978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d1656875654806a2e739f11e3a85482c5a9941ac46608ddfe459b09fb21b81fcb8f0ac3993ac618639bff39aefb5356bee9ccd1a3ebb5c", + "data": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f100000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffea421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "accessList": [], - "v": "0x00", - "r": "0x1d7bc855cb0746f6efc3530efda15d083a449ab4d93ae0706f68ad0aa339ad07", - "s": "0x624576b1df2ec61e38f136790fb09d29cbaa84dc18e25f334a0a18a97af423df", + "v": "0x01", + "r": "0x835d4b51ed0da335fd056fef9258d003fa59b9357aa385930f287dc279f00193", + "s": "0x62a3974bc93b244e4d7892ae6f8d29ee2a1470ecf7458e559fb999d72171a901", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -9241,7 +13171,7 @@ "withdrawals": [] } ], - "lastblockhash": "0x9db29d1202ee1f9433d07b7caf77efba99a03406906bf9247ba0799bbcacfbe6", + "lastblockhash": "0xf25678a0c17933929b30a471db876d8953df067cb31f266037edc299dc5099a2", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -9268,8 +13198,10 @@ "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb", - "0x04": "0x01d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb" + "0x01": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1", + "0x02": "0x01", + "0x04": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1", + "0x05": "0x01" } }, "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { @@ -9282,16 +13214,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xfffffffffffff271ce", + "balance": "0xffffffffffffee4242", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "071-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_ffa6e97b97146517": { + "101-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_point_at_infinity_ed6b180ec759bcf6": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -9322,19 +13254,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02dd557933b240a480c9441c933c9116de1a5515d7b87c3c99282890455041148a09e0ddd239d392d6f727334e86dbe6e14ee09f79fc5a700151247e4636365041aa04386b450bd7c63d7edd63ccdf927d98e9907cb98731f0391734b8adb8bb205adb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008302878e0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc001a08c2a5bec7de92d741f12030db06d2a4167e9de965113e485356cd4cc858095e6a007bd7af5a95fd1c7c0403a9873f0705e18ab779de27f7b920b7bfb059d83cd6ec0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ddaaf48016359afad49df46e3e146ffae6bf78072927435f3ba2c4fdd52b0fc5a0e92ce5c7a3b44d5c1e67c9fc61483828f2515885923bbc92b154910d20d39ab4a0016842b977ca2488af689e83f0b510e3368e0c80a1d2d4479f5a015c5b56938eb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028a6a0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f15eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c625ee1e9a4a06a02ca6ea14b0ca73415a8ba0fba888f18dde56df499b480d4b9e0a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a09edfaad74a93ef4ec70995e2be3d12acff82d8e1fc3384e60953c432a87fc585a063d5d737ecc3d1a6c91b0d6f5415dc7dcaa107bda2ab5cff59302d90fa93648ec0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x2dd557933b240a480c9441c933c9116de1a5515d7b87c3c99282890455041148", - "transactionsTrie": "0x9e0ddd239d392d6f727334e86dbe6e14ee09f79fc5a700151247e4636365041a", - "receiptTrie": "0x4386b450bd7c63d7edd63ccdf927d98e9907cb98731f0391734b8adb8bb205ad", + "stateRoot": "0xddaaf48016359afad49df46e3e146ffae6bf78072927435f3ba2c4fdd52b0fc5", + "transactionsTrie": "0xe92ce5c7a3b44d5c1e67c9fc61483828f2515885923bbc92b154910d20d39ab4", + "receiptTrie": "0x016842b977ca2488af689e83f0b510e3368e0c80a1d2d4479f5a015c5b56938e", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x02878e", + "gasUsed": "0x028a6a", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -9344,7 +13276,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x3f7330c6d30012b6c01931898acbedd22fb95978079119ee4065c70111287694" + "hash": "0x2118bf9e3a27cd3ca1059610ca6911b67a0b4be3fdaf96e38ee3bc7a0908d07b" }, "blocknumber": "1", "transactions": [ @@ -9357,11 +13289,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb", + "data": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f15eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c625ee1e9a4a06a02ca6ea14b0ca73415a8ba0fba888f18dde56df499b480d4b9e0a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "accessList": [], - "v": "0x01", - "r": "0x8c2a5bec7de92d741f12030db06d2a4167e9de965113e485356cd4cc858095e6", - "s": "0x07bd7af5a95fd1c7c0403a9873f0705e18ab779de27f7b920b7bfb059d83cd6e", + "v": "0x00", + "r": "0x9edfaad74a93ef4ec70995e2be3d12acff82d8e1fc3384e60953c432a87fc585", + "s": "0x63d5d737ecc3d1a6c91b0d6f5415dc7dcaa107bda2ab5cff59302d90fa93648e", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -9369,7 +13301,7 @@ "withdrawals": [] } ], - "lastblockhash": "0x3f7330c6d30012b6c01931898acbedd22fb95978079119ee4065c70111287694", + "lastblockhash": "0x2118bf9e3a27cd3ca1059610ca6911b67a0b4be3fdaf96e38ee3bc7a0908d07b", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -9396,10 +13328,10 @@ "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014", - "0x02": "0x01", - "0x04": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014", - "0x05": "0x01" + "0x01": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1", + "0x02": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62", + "0x04": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1", + "0x05": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62" } }, "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { @@ -9412,16 +13344,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee4b1e", + "balance": "0xffffffffffffee371a", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "072-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_commitment_1b44e341d56c757d": { + "102-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_commitment_1b44e341d56c757d": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -9452,19 +13384,19 @@ }, "blocks": [ { - "rlp": "0xf9036ff9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa016517ff33f2f352a705ef72839effd647563126be48583f8667f470859f8a90aa0419349e8571a881cc7208e90a33e328c16a2a621346310fc7c3f9f0e6eb2c4efa01db70b5b44754070ec0aadbf33226fc81e1c8d7a1e737f5ea9da94d39bd5bfcfb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b260c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012ab9012702f9012301808007830f424094000000000000000000000000000000000000010080b8bf01006f45971fc97298102573b98a02c4667995f43764f95a21b2f068c7bccc2e0000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd5197f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6807b160e50107d5af2ac0c93eedc658eeb776d2416ecd9579b976795d0719eead66791c9603c703dc50a108d56823a98c080a0814573a8d09abfa5fd301d77ad5d6fae33211588898cb9976bd7f375a0fe61bba06dd7c58d31e48f379b3afa551172f79ff15f6699e69f4acc5e565c8680e5a503c0c0", + "rlp": "0xf9036ff9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ce0aec3039e7ad67431725efacb00523c3f4c392149a59da74278d9b28406535a00c0b6f4df3390310b67295691f4cd21d342e173dc1c9cba536b8aadb86715aa3a0c1beb940f48b852900eccbd84f8f564b642e6a0ec524d1efbe17750d1455e864b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028af60c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012ab9012702f9012301808007830f424094000000000000000000000000000000000000010080b8bf01006f45971fc97298102573b98a02c4667995f43764f95a21b2f068c7bccc2e00000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffe97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6b0c829a8d2d3405304fecbea193e6c67f7c3912a6adc7c3737ad3f8a3b750425c1531a7426f03033a3994bc82a10609fc001a0f05fb8ee4257875c13b42f75939f17df726b98bbfe3b69073aa363c074e51956a00ebccc14cc832a596833d519b63a70e9bbb6a1e0617ece789b6578099dc8a4dbc0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x16517ff33f2f352a705ef72839effd647563126be48583f8667f470859f8a90a", - "transactionsTrie": "0x419349e8571a881cc7208e90a33e328c16a2a621346310fc7c3f9f0e6eb2c4ef", - "receiptTrie": "0x1db70b5b44754070ec0aadbf33226fc81e1c8d7a1e737f5ea9da94d39bd5bfcf", + "stateRoot": "0xce0aec3039e7ad67431725efacb00523c3f4c392149a59da74278d9b28406535", + "transactionsTrie": "0x0c0b6f4df3390310b67295691f4cd21d342e173dc1c9cba536b8aadb86715aa3", + "receiptTrie": "0xc1beb940f48b852900eccbd84f8f564b642e6a0ec524d1efbe17750d1455e864", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x028b26", + "gasUsed": "0x028af6", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -9474,7 +13406,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xb1a2e10cc5819fb735cea1842e2f566cd7821f9b6b2d5da21ba4f58f59308692" + "hash": "0x84dce0572d97f649cf3c2567441429b073b0addaad1c9a4f34d37efee4104ace" }, "blocknumber": "1", "transactions": [ @@ -9487,11 +13419,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01006f45971fc97298102573b98a02c4667995f43764f95a21b2f068c7bccc2e0000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd5197f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6807b160e50107d5af2ac0c93eedc658eeb776d2416ecd9579b976795d0719eead66791c9603c703dc50a108d56823a98", + "data": "0x01006f45971fc97298102573b98a02c4667995f43764f95a21b2f068c7bccc2e00000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffe97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6b0c829a8d2d3405304fecbea193e6c67f7c3912a6adc7c3737ad3f8a3b750425c1531a7426f03033a3994bc82a10609f", "accessList": [], - "v": "0x00", - "r": "0x814573a8d09abfa5fd301d77ad5d6fae33211588898cb9976bd7f375a0fe61bb", - "s": "0x6dd7c58d31e48f379b3afa551172f79ff15f6699e69f4acc5e565c8680e5a503", + "v": "0x01", + "r": "0xf05fb8ee4257875c13b42f75939f17df726b98bbfe3b69073aa363c074e51956", + "s": "0x0ebccc14cc832a596833d519b63a70e9bbb6a1e0617ece789b6578099dc8a4db", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -9499,7 +13431,7 @@ "withdrawals": [] } ], - "lastblockhash": "0xb1a2e10cc5819fb735cea1842e2f566cd7821f9b6b2d5da21ba4f58f59308692", + "lastblockhash": "0x84dce0572d97f649cf3c2567441429b073b0addaad1c9a4f34d37efee4104ace", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -9542,16 +13474,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee31f6", + "balance": "0xffffffffffffee3346", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "073-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_commitment_32afa9561a4b3b91": { + "103-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_commitment_32afa9561a4b3b91": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -9582,19 +13514,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa066d67cb3bef2b7fba7a4e9c5a4e2b0044b13b97be106f669b0b80c5d2ff0158ca0dcc371212c7240e779e11cf38d2c2f277175bfc1cfbd5532494f9379fff1f2fba00854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b420c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0016564752c546f453adeb98716f70a1167a34ffcc8aa605e2f3b0e0dbd8804f40000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd518123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef807b160e50107d5af2ac0c93eedc658eeb776d2416ecd9579b976795d0719eead66791c9603c703dc50a108d56823a98c080a029d91af9d2dbfff89af21b78c3c3547c21f7125cbf38c87439be538f4c78d611a058c846c9c17083d2981fa72571901d8cdef98e55d7354093d249d0b163261f8fc0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa049d77b1134a7f664da5a2cb001933a7f54ba3785cbac033cefae5f3c478d08b7a0f1cdcc62f37484c5435e66330383ec9f5eafba591633d7e9d5be11acd3665e87a04e8d678e548e6c41a056eb0927bbc3e4d80e564d9d674fea8bbc1783049e898ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b120c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0016564752c546f453adeb98716f70a1167a34ffcc8aa605e2f3b0e0dbd8804f400000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffe8123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdefb0c829a8d2d3405304fecbea193e6c67f7c3912a6adc7c3737ad3f8a3b750425c1531a7426f03033a3994bc82a10609fc001a00396e2fe037d79b74d6c66c829d2ec42200d36a14e899d70a8e1a2de5b3c1455a0343efb08716e9f1b429eab9b183a8ee8225b11acb08730559a0472a0ee5bcaedc0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x66d67cb3bef2b7fba7a4e9c5a4e2b0044b13b97be106f669b0b80c5d2ff0158c", - "transactionsTrie": "0xdcc371212c7240e779e11cf38d2c2f277175bfc1cfbd5532494f9379fff1f2fb", - "receiptTrie": "0x0854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90", + "stateRoot": "0x49d77b1134a7f664da5a2cb001933a7f54ba3785cbac033cefae5f3c478d08b7", + "transactionsTrie": "0xf1cdcc62f37484c5435e66330383ec9f5eafba591633d7e9d5be11acd3665e87", + "receiptTrie": "0x4e8d678e548e6c41a056eb0927bbc3e4d80e564d9d674fea8bbc1783049e898a", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x028b42", + "gasUsed": "0x028b12", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -9604,7 +13536,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x59e4255c46af74e6bfad46768ec86b25e594552ae08dda95de9ad7a6efa3e890" + "hash": "0xeb12de866f42db18fec9fe65c7c706e69148f265928d2d481f3baa8039de4203" }, "blocknumber": "1", "transactions": [ @@ -9617,11 +13549,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x016564752c546f453adeb98716f70a1167a34ffcc8aa605e2f3b0e0dbd8804f40000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd518123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef807b160e50107d5af2ac0c93eedc658eeb776d2416ecd9579b976795d0719eead66791c9603c703dc50a108d56823a98", + "data": "0x016564752c546f453adeb98716f70a1167a34ffcc8aa605e2f3b0e0dbd8804f400000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffe8123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdefb0c829a8d2d3405304fecbea193e6c67f7c3912a6adc7c3737ad3f8a3b750425c1531a7426f03033a3994bc82a10609f", "accessList": [], - "v": "0x00", - "r": "0x29d91af9d2dbfff89af21b78c3c3547c21f7125cbf38c87439be538f4c78d611", - "s": "0x58c846c9c17083d2981fa72571901d8cdef98e55d7354093d249d0b163261f8f", + "v": "0x01", + "r": "0x0396e2fe037d79b74d6c66c829d2ec42200d36a14e899d70a8e1a2de5b3c1455", + "s": "0x343efb08716e9f1b429eab9b183a8ee8225b11acb08730559a0472a0ee5bcaed", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -9629,7 +13561,7 @@ "withdrawals": [] } ], - "lastblockhash": "0x59e4255c46af74e6bfad46768ec86b25e594552ae08dda95de9ad7a6efa3e890", + "lastblockhash": "0xeb12de866f42db18fec9fe65c7c706e69148f265928d2d481f3baa8039de4203", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -9672,16 +13604,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee3132", + "balance": "0xffffffffffffee3282", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "074-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_commitment_3e55802a5ed3c757": { + "104-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_commitment_3e55802a5ed3c757": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -9712,19 +13644,19 @@ }, "blocks": [ { - "rlp": "0xf90371f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa08597d112d50628860785ac166a32af5336cb4f444665550e192976be1ff275d2a0fadf4202b0ad9b1a272c261b04af316b56643c358925a4cd670068527428fb34a048644af60a049cc79548068c9161b8e3527b3b64cbac7d570429a14ae90cf435b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b4c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012cb9012902f9012501808007830f424094000000000000000000000000000000000000010080b8c101ffadf79cefb539a58c0e96810cd9ffb95568686d2e4d0759e3fab348d32df90000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd5197f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb00807b160e50107d5af2ac0c93eedc658eeb776d2416ecd9579b976795d0719eead66791c9603c703dc50a108d56823a98c080a07a28a3570fd003c028912ff9bd518d0eb78ddfdf2af8654606b47acd6c448760a05914ab01e1b345fe3997029e800ca0bb053798bee29020a34e465fa1a650b7e8c0c0", + "rlp": "0xf90371f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c795dbbe8b9418fdb29664cebecdb716ad2e795bb643d5a8f9919ddcf95c95bca0a8a7bbc2d828e0bec09041bdba1faae4a48a63f810d21ce8d74a4f743c3ff8e9a0dd60949e0bb928aede445e5c249fdcb40735f04fe45532000e49fffbef975987b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b1c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012cb9012902f9012501808007830f424094000000000000000000000000000000000000010080b8c101ffadf79cefb539a58c0e96810cd9ffb95568686d2e4d0759e3fab348d32df900000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffe97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb00b0c829a8d2d3405304fecbea193e6c67f7c3912a6adc7c3737ad3f8a3b750425c1531a7426f03033a3994bc82a10609fc001a0b1381e7a047df94ff8bbc74e2b80f32e06a243a4b40e772cbec5d950135168c3a019c9311fe07d1b68ae6789476624bc58832e2d373d506eca3e632f8e56472ed9c0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x8597d112d50628860785ac166a32af5336cb4f444665550e192976be1ff275d2", - "transactionsTrie": "0xfadf4202b0ad9b1a272c261b04af316b56643c358925a4cd670068527428fb34", - "receiptTrie": "0x48644af60a049cc79548068c9161b8e3527b3b64cbac7d570429a14ae90cf435", + "stateRoot": "0xc795dbbe8b9418fdb29664cebecdb716ad2e795bb643d5a8f9919ddcf95c95bc", + "transactionsTrie": "0xa8a7bbc2d828e0bec09041bdba1faae4a48a63f810d21ce8d74a4f743c3ff8e9", + "receiptTrie": "0xdd60949e0bb928aede445e5c249fdcb40735f04fe45532000e49fffbef975987", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x028b4c", + "gasUsed": "0x028b1c", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -9734,7 +13666,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xb5f21ece934ddab11f432ac9b7f43761825e7004786c56c7eadadf4dffe5ea20" + "hash": "0x42188d733180d8129bf4ce235696169a1716e6d319987466ba97318ea1ed538a" }, "blocknumber": "1", "transactions": [ @@ -9747,11 +13679,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01ffadf79cefb539a58c0e96810cd9ffb95568686d2e4d0759e3fab348d32df90000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd5197f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb00807b160e50107d5af2ac0c93eedc658eeb776d2416ecd9579b976795d0719eead66791c9603c703dc50a108d56823a98", + "data": "0x01ffadf79cefb539a58c0e96810cd9ffb95568686d2e4d0759e3fab348d32df900000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffe97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb00b0c829a8d2d3405304fecbea193e6c67f7c3912a6adc7c3737ad3f8a3b750425c1531a7426f03033a3994bc82a10609f", "accessList": [], - "v": "0x00", - "r": "0x7a28a3570fd003c028912ff9bd518d0eb78ddfdf2af8654606b47acd6c448760", - "s": "0x5914ab01e1b345fe3997029e800ca0bb053798bee29020a34e465fa1a650b7e8", + "v": "0x01", + "r": "0xb1381e7a047df94ff8bbc74e2b80f32e06a243a4b40e772cbec5d950135168c3", + "s": "0x19c9311fe07d1b68ae6789476624bc58832e2d373d506eca3e632f8e56472ed9", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -9759,7 +13691,7 @@ "withdrawals": [] } ], - "lastblockhash": "0xb5f21ece934ddab11f432ac9b7f43761825e7004786c56c7eadadf4dffe5ea20", + "lastblockhash": "0x42188d733180d8129bf4ce235696169a1716e6d319987466ba97318ea1ed538a", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -9802,16 +13734,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee30ec", + "balance": "0xffffffffffffee323c", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "075-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_commitment_e9d3e9ec16fbc15f": { + "105-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_commitment_e9d3e9ec16fbc15f": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -9842,19 +13774,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d7f6f0b55e0eab69debdd6def62cc671474d373a6617e580dde7269dec36f1f3a0e7293df226ef54ddd0de0317c08989572f4cfb06088a69300a49e2f79cc83d99a0f91c3d227b7dd5018ec562a377541ab822d8b42bb7b9be413107620c7f882e25b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b360c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0018b4962e42a010067618c230986810f6b2e12191db0762782c42bcf5462ebbc0000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd518123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcde0807b160e50107d5af2ac0c93eedc658eeb776d2416ecd9579b976795d0719eead66791c9603c703dc50a108d56823a98c001a07764a7c1c60477b83cf850029ebc6b3e7f485cb03ba1fd4567cf40faad1ab812a04ccc26eff80bacc4c79ff9a211f845cfa497f29dae82df03526e0f9f5a691819c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bb7c1d8b594b5c62fd497fe489d8b3808efc3294a5a101363489ead2121ab770a0f7558ca8cf2279f3f64f58b68d8879c34c03f47e0bdf8710c253895c13d2bdb2a07e4702a3e2895822641438f25767dda1c05753a85603553561f28237ef5166ddb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b060c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0018b4962e42a010067618c230986810f6b2e12191db0762782c42bcf5462ebbc00000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffe8123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcde0b0c829a8d2d3405304fecbea193e6c67f7c3912a6adc7c3737ad3f8a3b750425c1531a7426f03033a3994bc82a10609fc080a01eefeb086ce3a73da67a33e695123e344dc7e163298449e1c69b8aed82aca06ca07a7cc252ee2f6225b89eaa803a04fb9415c1bb70f33dace2a78b0c4740bf46b9c0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xd7f6f0b55e0eab69debdd6def62cc671474d373a6617e580dde7269dec36f1f3", - "transactionsTrie": "0xe7293df226ef54ddd0de0317c08989572f4cfb06088a69300a49e2f79cc83d99", - "receiptTrie": "0xf91c3d227b7dd5018ec562a377541ab822d8b42bb7b9be413107620c7f882e25", + "stateRoot": "0xbb7c1d8b594b5c62fd497fe489d8b3808efc3294a5a101363489ead2121ab770", + "transactionsTrie": "0xf7558ca8cf2279f3f64f58b68d8879c34c03f47e0bdf8710c253895c13d2bdb2", + "receiptTrie": "0x7e4702a3e2895822641438f25767dda1c05753a85603553561f28237ef5166dd", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x028b36", + "gasUsed": "0x028b06", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -9864,7 +13796,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x387649b3c796e8a71620e8e77227e502ca3a99cbdae775d25047dcf969f2484b" + "hash": "0x1eb35fa0ddbceff197df41c9e082ca91537fe36ba4f60b3d9647bef6cbfabbbc" }, "blocknumber": "1", "transactions": [ @@ -9877,11 +13809,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x018b4962e42a010067618c230986810f6b2e12191db0762782c42bcf5462ebbc0000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd518123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcde0807b160e50107d5af2ac0c93eedc658eeb776d2416ecd9579b976795d0719eead66791c9603c703dc50a108d56823a98", + "data": "0x018b4962e42a010067618c230986810f6b2e12191db0762782c42bcf5462ebbc00000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffe8123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcde0b0c829a8d2d3405304fecbea193e6c67f7c3912a6adc7c3737ad3f8a3b750425c1531a7426f03033a3994bc82a10609f", "accessList": [], - "v": "0x01", - "r": "0x7764a7c1c60477b83cf850029ebc6b3e7f485cb03ba1fd4567cf40faad1ab812", - "s": "0x4ccc26eff80bacc4c79ff9a211f845cfa497f29dae82df03526e0f9f5a691819", + "v": "0x00", + "r": "0x1eefeb086ce3a73da67a33e695123e344dc7e163298449e1c69b8aed82aca06c", + "s": "0x7a7cc252ee2f6225b89eaa803a04fb9415c1bb70f33dace2a78b0c4740bf46b9", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -9889,7 +13821,7 @@ "withdrawals": [] } ], - "lastblockhash": "0x387649b3c796e8a71620e8e77227e502ca3a99cbdae775d25047dcf969f2484b", + "lastblockhash": "0x1eb35fa0ddbceff197df41c9e082ca91537fe36ba4f60b3d9647bef6cbfabbbc", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -9932,16 +13864,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee3186", + "balance": "0xffffffffffffee32d6", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "076-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_proof_1b44e341d56c757d": { + "106-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_proof_1b44e341d56c757d": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -9972,19 +13904,19 @@ }, "blocks": [ { - "rlp": "0xf9036ff9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b4a773ff9690d864a6afbe33a0d92bf6381bf42a2a3ed05eb35e30f3d94e89d8a0942f894330e0bca68d52778b6da6b110862cf8b8cfd85b31abc75b25f7116402a07f0e9a9e3efb922217626a18737094dda402867f2bd22c59ab7c19cf71bef69eb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b320c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012ab9012702f9012301808007830f424094000000000000000000000000000000000000010080b8bf01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b90000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd51a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca797f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6c001a065f3012afb7309499eeb850a79f9ea635e95d07821de949196c9d6b58e627e6da07d95c2f04aff352b21f153822599c16433b3d87b2923f7ca9a3ec8fda2081b66c0c0", + "rlp": "0xf9036ff9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a6d33a5398cbb9932d2e73230b8144bf1087033c183ba8bf38842c60a11c5290a0ffd7e24d10f745e4c48c7c70033a1705e03009d8f5596148b0de90f8dd1eb63fa0c1beb940f48b852900eccbd84f8f564b642e6a0ec524d1efbe17750d1455e864b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028af60c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012ab9012702f9012301808007830f424094000000000000000000000000000000000000010080b8bf014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f100000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffea421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d0697f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6c080a017813aa62b80c27cd952a17be997859c348e8e890d18bb368c2f82c49dcb4f63a0051500541bde044f64d28f4ae91b9f3d0325c691544d82f626c229787aa2d11dc0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb4a773ff9690d864a6afbe33a0d92bf6381bf42a2a3ed05eb35e30f3d94e89d8", - "transactionsTrie": "0x942f894330e0bca68d52778b6da6b110862cf8b8cfd85b31abc75b25f7116402", - "receiptTrie": "0x7f0e9a9e3efb922217626a18737094dda402867f2bd22c59ab7c19cf71bef69e", + "stateRoot": "0xa6d33a5398cbb9932d2e73230b8144bf1087033c183ba8bf38842c60a11c5290", + "transactionsTrie": "0xffd7e24d10f745e4c48c7c70033a1705e03009d8f5596148b0de90f8dd1eb63f", + "receiptTrie": "0xc1beb940f48b852900eccbd84f8f564b642e6a0ec524d1efbe17750d1455e864", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x028b32", + "gasUsed": "0x028af6", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -9994,7 +13926,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x7bbf02ec74dc803b2a7740e3b3e13fbbf9b2c2be7900adb659e94a1f74aecb62" + "hash": "0xbd42c194c69fba8b175c40a4c916f843c83c36d77463c460eef41456045a2392" }, "blocknumber": "1", "transactions": [ @@ -10007,11 +13939,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b90000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd51a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca797f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6", + "data": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f100000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffea421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d0697f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6", "accessList": [], - "v": "0x01", - "r": "0x65f3012afb7309499eeb850a79f9ea635e95d07821de949196c9d6b58e627e6d", - "s": "0x7d95c2f04aff352b21f153822599c16433b3d87b2923f7ca9a3ec8fda2081b66", + "v": "0x00", + "r": "0x17813aa62b80c27cd952a17be997859c348e8e890d18bb368c2f82c49dcb4f63", + "s": "0x051500541bde044f64d28f4ae91b9f3d0325c691544d82f626c229787aa2d11d", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -10019,7 +13951,7 @@ "withdrawals": [] } ], - "lastblockhash": "0x7bbf02ec74dc803b2a7740e3b3e13fbbf9b2c2be7900adb659e94a1f74aecb62", + "lastblockhash": "0xbd42c194c69fba8b175c40a4c916f843c83c36d77463c460eef41456045a2392", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -10046,9 +13978,9 @@ "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9", + "0x01": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1", "0x02": "0x01", - "0x04": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9", + "0x04": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1", "0x05": "0x01" } }, @@ -10062,16 +13994,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee31a2", + "balance": "0xffffffffffffee3346", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "077-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_proof_32afa9561a4b3b91": { + "107-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_proof_32afa9561a4b3b91": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -10102,19 +14034,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa007e7ee5bdc40dd867afc65eb488fb609f8431800c2ab7e393d1e7116e7f82f10a088cbdc065ade663e7abe3fd45a68e7a0941adc8e89b3efb52cfe01055aa5ac45a00854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b420c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b90000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd51a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca78123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdefc080a0bf5dad24779b4c2c21a143ab883d45d48a43395d28277d08187eac28c7865c27a048bb7af5890eef08f89c8ab0148782ad1912c378c753eaeb83faebcfc98c688dc0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c86f9ab1d09cc7ce0eef9a92cec27b0e8f3a3ba000951e314a79d330e6b67feda009086253b6b3042c79539042cc75abd9fb7f656b46968aeb61ca8c4719f9d81fa07e4702a3e2895822641438f25767dda1c05753a85603553561f28237ef5166ddb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b060c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f100000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffea421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d068123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdefc001a015b443da028c2adb70611098109931334e0381651779d7bbcf37e8b2338c61fda005d5efd2e84f1ef34eb7d274ac98f776b148aeed7ff9deb53c2ec882644c4b9dc0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x07e7ee5bdc40dd867afc65eb488fb609f8431800c2ab7e393d1e7116e7f82f10", - "transactionsTrie": "0x88cbdc065ade663e7abe3fd45a68e7a0941adc8e89b3efb52cfe01055aa5ac45", - "receiptTrie": "0x0854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90", + "stateRoot": "0xc86f9ab1d09cc7ce0eef9a92cec27b0e8f3a3ba000951e314a79d330e6b67fed", + "transactionsTrie": "0x09086253b6b3042c79539042cc75abd9fb7f656b46968aeb61ca8c4719f9d81f", + "receiptTrie": "0x7e4702a3e2895822641438f25767dda1c05753a85603553561f28237ef5166dd", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x028b42", + "gasUsed": "0x028b06", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -10124,7 +14056,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x4ae60369e6041e6dbf09b6cab620642d802236884ecb1317bc56d7d7444380f6" + "hash": "0x6e5d6adfef9a7730731528af2f8cb49446345ee8962c5b656318d0f240b2c505" }, "blocknumber": "1", "transactions": [ @@ -10137,11 +14069,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b90000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd51a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca78123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef", + "data": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f100000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffea421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d068123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef", "accessList": [], - "v": "0x00", - "r": "0xbf5dad24779b4c2c21a143ab883d45d48a43395d28277d08187eac28c7865c27", - "s": "0x48bb7af5890eef08f89c8ab0148782ad1912c378c753eaeb83faebcfc98c688d", + "v": "0x01", + "r": "0x15b443da028c2adb70611098109931334e0381651779d7bbcf37e8b2338c61fd", + "s": "0x05d5efd2e84f1ef34eb7d274ac98f776b148aeed7ff9deb53c2ec882644c4b9d", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -10149,7 +14081,7 @@ "withdrawals": [] } ], - "lastblockhash": "0x4ae60369e6041e6dbf09b6cab620642d802236884ecb1317bc56d7d7444380f6", + "lastblockhash": "0x6e5d6adfef9a7730731528af2f8cb49446345ee8962c5b656318d0f240b2c505", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -10176,9 +14108,9 @@ "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9", + "0x01": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1", "0x02": "0x01", - "0x04": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9", + "0x04": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1", "0x05": "0x01" } }, @@ -10192,16 +14124,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee3132", + "balance": "0xffffffffffffee32d6", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "078-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_proof_3e55802a5ed3c757": { + "108-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_proof_3e55802a5ed3c757": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -10232,19 +14164,19 @@ }, "blocks": [ { - "rlp": "0xf90371f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0757f98ba7b402e6c17e85b1efe4a4560eaf65ffac14533e16fd979531ba910c0a08fd44fa846ea5b5c834aac3739dd842a292bd2bed917647d91a7fdda788aa7d6a048644af60a049cc79548068c9161b8e3527b3b64cbac7d570429a14ae90cf435b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b4c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012cb9012902f9012501808007830f424094000000000000000000000000000000000000010080b8c101190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b90000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd51a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca797f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb00c001a021ff2b920a0c742023c10012b04ae4a42e3e05753800e056abb1d8cd6fc80075a036c2ab5bdd41ac63d46958e702905b4bd4acbe371a6e3aacab2c70e0e3f7ef32c0c0", + "rlp": "0xf90371f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e51f6dd5f43d5eea7153454f10c98fbc705c7d55918089253e48d0147d796822a08429e8a6afc252f564f916c76ba29736df5a63c58d06255903d089b489c7a7bba0482ae97d122ee408fa6d344a6a7c7bd19c4ec4d35666ba16e464647e1ad761e6b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012cb9012902f9012501808007830f424094000000000000000000000000000000000000010080b8c1014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f100000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffea421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d0697f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb00c080a003404d5cd90d535980899a8600e2d790d2979e41495ec835f76f8e1b2e1b78d4a007e322fddc46f21a63bf3e9dacfba8352de83ed54f285d6e0e4de81c1c1677afc0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x757f98ba7b402e6c17e85b1efe4a4560eaf65ffac14533e16fd979531ba910c0", - "transactionsTrie": "0x8fd44fa846ea5b5c834aac3739dd842a292bd2bed917647d91a7fdda788aa7d6", - "receiptTrie": "0x48644af60a049cc79548068c9161b8e3527b3b64cbac7d570429a14ae90cf435", + "stateRoot": "0xe51f6dd5f43d5eea7153454f10c98fbc705c7d55918089253e48d0147d796822", + "transactionsTrie": "0x8429e8a6afc252f564f916c76ba29736df5a63c58d06255903d089b489c7a7bb", + "receiptTrie": "0x482ae97d122ee408fa6d344a6a7c7bd19c4ec4d35666ba16e464647e1ad761e6", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x028b4c", + "gasUsed": "0x028b10", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -10254,7 +14186,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xcbdb3a92259fd164f683aaebc63565065e281aece4e03cd073cf41adcf3de8ae" + "hash": "0x03503a9631c9d4a73eb4fb2afddb8daf6bc6122b4a4e80de11c25068d10479e2" }, "blocknumber": "1", "transactions": [ @@ -10267,11 +14199,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b90000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd51a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca797f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb00", + "data": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f100000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffea421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d0697f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb00", "accessList": [], - "v": "0x01", - "r": "0x21ff2b920a0c742023c10012b04ae4a42e3e05753800e056abb1d8cd6fc80075", - "s": "0x36c2ab5bdd41ac63d46958e702905b4bd4acbe371a6e3aacab2c70e0e3f7ef32", + "v": "0x00", + "r": "0x03404d5cd90d535980899a8600e2d790d2979e41495ec835f76f8e1b2e1b78d4", + "s": "0x07e322fddc46f21a63bf3e9dacfba8352de83ed54f285d6e0e4de81c1c1677af", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -10279,7 +14211,7 @@ "withdrawals": [] } ], - "lastblockhash": "0xcbdb3a92259fd164f683aaebc63565065e281aece4e03cd073cf41adcf3de8ae", + "lastblockhash": "0x03503a9631c9d4a73eb4fb2afddb8daf6bc6122b4a4e80de11c25068d10479e2", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -10306,9 +14238,9 @@ "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9", + "0x01": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1", "0x02": "0x01", - "0x04": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9", + "0x04": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1", "0x05": "0x01" } }, @@ -10322,16 +14254,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee30ec", + "balance": "0xffffffffffffee3290", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "079-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_proof_e9d3e9ec16fbc15f": { + "109-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_proof_e9d3e9ec16fbc15f": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -10362,19 +14294,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa007e7ee5bdc40dd867afc65eb488fb609f8431800c2ab7e393d1e7116e7f82f10a01ee0ff90b680c2bb4a8543e932aff78751274a76bfc975075e9f7b854217616ea00854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b420c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b90000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd51a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca78123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcde0c001a047a5f4eedceccff6d22babd288f2bd7b88a8706d0443922de36d18a0e101a455a0751037d311c5ef23bfbec3d5a190302606f8f46c8a7b090eade43df0ad3d5dc6c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c86f9ab1d09cc7ce0eef9a92cec27b0e8f3a3ba000951e314a79d330e6b67feda087991902b14e10548cc81b439568dcabfb07ab3503006f307d2b37c67b2e351fa07e4702a3e2895822641438f25767dda1c05753a85603553561f28237ef5166ddb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b060c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f100000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffea421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d068123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcde0c080a03bc1cc3bc8adf06382c674e21088065fb34b3c134fba846ba64af7fc67bd936ea0576d774a37747222e60058b3189cdd979d9400ffba80b82ae2cf86702f1e82bec0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x07e7ee5bdc40dd867afc65eb488fb609f8431800c2ab7e393d1e7116e7f82f10", - "transactionsTrie": "0x1ee0ff90b680c2bb4a8543e932aff78751274a76bfc975075e9f7b854217616e", - "receiptTrie": "0x0854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90", + "stateRoot": "0xc86f9ab1d09cc7ce0eef9a92cec27b0e8f3a3ba000951e314a79d330e6b67fed", + "transactionsTrie": "0x87991902b14e10548cc81b439568dcabfb07ab3503006f307d2b37c67b2e351f", + "receiptTrie": "0x7e4702a3e2895822641438f25767dda1c05753a85603553561f28237ef5166dd", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x028b42", + "gasUsed": "0x028b06", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -10384,7 +14316,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x21cebb35146b0f93bcb29a546d068804a63f890a25920bc42c6e8dfe63d2ea90" + "hash": "0x9cbd3d371f2acd8eec9a21670ed9845fe38c3be3f75a30276c4ce71cf8ef9b61" }, "blocknumber": "1", "transactions": [ @@ -10397,11 +14329,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b90000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd51a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca78123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcde0", + "data": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f100000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffea421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d068123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcde0", "accessList": [], - "v": "0x01", - "r": "0x47a5f4eedceccff6d22babd288f2bd7b88a8706d0443922de36d18a0e101a455", - "s": "0x751037d311c5ef23bfbec3d5a190302606f8f46c8a7b090eade43df0ad3d5dc6", + "v": "0x00", + "r": "0x3bc1cc3bc8adf06382c674e21088065fb34b3c134fba846ba64af7fc67bd936e", + "s": "0x576d774a37747222e60058b3189cdd979d9400ffba80b82ae2cf86702f1e82be", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -10409,7 +14341,7 @@ "withdrawals": [] } ], - "lastblockhash": "0x21cebb35146b0f93bcb29a546d068804a63f890a25920bc42c6e8dfe63d2ea90", + "lastblockhash": "0x9cbd3d371f2acd8eec9a21670ed9845fe38c3be3f75a30276c4ce71cf8ef9b61", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -10436,9 +14368,9 @@ "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9", + "0x01": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1", "0x02": "0x01", - "0x04": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9", + "0x04": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1", "0x05": "0x01" } }, @@ -10452,16 +14384,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee3132", + "balance": "0xffffffffffffee32d6", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "080-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_y_35d08d612aad2197": { + "110-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_y_35d08d612aad2197": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -10492,19 +14424,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa034182c35645b326e4d5b1f0097027a46f7b550c7d9eb63d6664831338f44ba2fa0766d2c1305fd9773facf097e8d03c63f82ca5e8b041df3e7c28d60f67cc35195a0cd67bcbc48561ef61154deee19760b5f235e5e6872027213a26ed4a9864120a8b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008302890e0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c00000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0cfbbfe701ca149cc6682901c7b33fc2d29fb210e9765a45842f5b9be5464b54ba07a3c681c61f6317674151b25b896213bc0920f3a0e0ac594f500418a4b0bdc6ac0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa080463fa21af9bb16b8019e8c192c63860bb83ca4b7c879b2df6b7f2b4151ba50a0825dd7c94c83edbb277467c453b73c32764b421939786e8948c74ae867299671a00854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b420c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b0000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43c080a0a4f488f6e5fd10cb45f6c6b90ab7fe3916250abc154d49773cd149c5f0dd3104a0343ebe85ec87372a0955fef79e6eed97cb8eeb9a4db7447d7c6f14dc76292844c0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x34182c35645b326e4d5b1f0097027a46f7b550c7d9eb63d6664831338f44ba2f", - "transactionsTrie": "0x766d2c1305fd9773facf097e8d03c63f82ca5e8b041df3e7c28d60f67cc35195", - "receiptTrie": "0xcd67bcbc48561ef61154deee19760b5f235e5e6872027213a26ed4a9864120a8", + "stateRoot": "0x80463fa21af9bb16b8019e8c192c63860bb83ca4b7c879b2df6b7f2b4151ba50", + "transactionsTrie": "0x825dd7c94c83edbb277467c453b73c32764b421939786e8948c74ae867299671", + "receiptTrie": "0x0854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x02890e", + "gasUsed": "0x028b42", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -10514,7 +14446,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xba92df53b9a4f585de643c996b1b896980f5ced8ab5c209fd2f0727592378514" + "hash": "0x973e09227b5ecc812f91d74b589656431aff640dd6a654afa0210dfed664a518" }, "blocknumber": "1", "transactions": [ @@ -10527,11 +14459,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c00000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "data": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b0000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43", "accessList": [], "v": "0x00", - "r": "0xcfbbfe701ca149cc6682901c7b33fc2d29fb210e9765a45842f5b9be5464b54b", - "s": "0x7a3c681c61f6317674151b25b896213bc0920f3a0e0ac594f500418a4b0bdc6a", + "r": "0xa4f488f6e5fd10cb45f6c6b90ab7fe3916250abc154d49773cd149c5f0dd3104", + "s": "0x343ebe85ec87372a0955fef79e6eed97cb8eeb9a4db7447d7c6f14dc76292844", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -10539,7 +14471,7 @@ "withdrawals": [] } ], - "lastblockhash": "0xba92df53b9a4f585de643c996b1b896980f5ced8ab5c209fd2f0727592378514", + "lastblockhash": "0x973e09227b5ecc812f91d74b589656431aff640dd6a654afa0210dfed664a518", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -10566,9 +14498,9 @@ "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", + "0x01": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b", "0x02": "0x01", - "0x04": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", + "0x04": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b", "0x05": "0x01" } }, @@ -10582,16 +14514,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee409e", + "balance": "0xffffffffffffee3132", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "081-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_y_4aa6def8c35c9097": { + "111-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_y_4aa6def8c35c9097": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -10622,19 +14554,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06f536854380dd7739c55d2edd79c125747a312f254c8bfb5161904c88c6a89a9a05d4fd5903a2c80d6bf91a564fda4d31eaedf6e07ec443651f8e81a54ba3b1b4aa074136951726d9667071586badffebfa570056916bf1742d12ebef020ba802e5db9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008302884e0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c00000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffff00000000000000000000000000000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0942ab28d33abdfd19b27c49cd4f6eb1293be43fc9fa34f640680e2f7073eac51a051804ba32b1fe8dcd50404c5aa6f2a73af77e4a36aa96be8ed8965f4cb138accc0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cf71ca1737d1aca03b5eff379c64f2bf212579bdf6f41c3d9b19337922af674ba0390287c85cc4c317ed57fd7f00e2014ba3a35c22a5110f58532c7e6ba11a0df9a01578743dc146433d0030a044a723cf642603b53cbf0eac3c9f78683d628b6edab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028a820c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b0000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffff000000000000000000000000000000008f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43c080a0abcf44b44b8dc5d10c1e8430d7dab45c471441db6f911375aa46f4659b501a10a018a1cc01f862937d428dc3c9beae20df73704707db38402ddf61bb3e41a69b86c0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x6f536854380dd7739c55d2edd79c125747a312f254c8bfb5161904c88c6a89a9", - "transactionsTrie": "0x5d4fd5903a2c80d6bf91a564fda4d31eaedf6e07ec443651f8e81a54ba3b1b4a", - "receiptTrie": "0x74136951726d9667071586badffebfa570056916bf1742d12ebef020ba802e5d", + "stateRoot": "0xcf71ca1737d1aca03b5eff379c64f2bf212579bdf6f41c3d9b19337922af674b", + "transactionsTrie": "0x390287c85cc4c317ed57fd7f00e2014ba3a35c22a5110f58532c7e6ba11a0df9", + "receiptTrie": "0x1578743dc146433d0030a044a723cf642603b53cbf0eac3c9f78683d628b6eda", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x02884e", + "gasUsed": "0x028a82", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -10644,7 +14576,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xcd99af606c7b59ae089d79443d3cba63e516f854c133f52c31ec4676ebd4d60d" + "hash": "0x7633f15489df6a95a86ebe4fb833f85ea9a3cf18980087487ed93a2681194426" }, "blocknumber": "1", "transactions": [ @@ -10657,11 +14589,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c00000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffff00000000000000000000000000000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "data": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b0000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffff000000000000000000000000000000008f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43", "accessList": [], "v": "0x00", - "r": "0x942ab28d33abdfd19b27c49cd4f6eb1293be43fc9fa34f640680e2f7073eac51", - "s": "0x51804ba32b1fe8dcd50404c5aa6f2a73af77e4a36aa96be8ed8965f4cb138acc", + "r": "0xabcf44b44b8dc5d10c1e8430d7dab45c471441db6f911375aa46f4659b501a10", + "s": "0x18a1cc01f862937d428dc3c9beae20df73704707db38402ddf61bb3e41a69b86", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -10669,7 +14601,7 @@ "withdrawals": [] } ], - "lastblockhash": "0xcd99af606c7b59ae089d79443d3cba63e516f854c133f52c31ec4676ebd4d60d", + "lastblockhash": "0x7633f15489df6a95a86ebe4fb833f85ea9a3cf18980087487ed93a2681194426", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -10696,9 +14628,9 @@ "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", + "0x01": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b", "0x02": "0x01", - "0x04": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", + "0x04": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b", "0x05": "0x01" } }, @@ -10712,16 +14644,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee45de", + "balance": "0xffffffffffffee3672", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "082-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_y_4e51cef08a61606f": { + "112-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_y_4e51cef08a61606f": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -10752,19 +14684,19 @@ }, "blocks": [ { - "rlp": "0xf9036ff9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa023a7a27f608e59a2629f80716f7c45a19bf559fa8269e73dfe3c8cb253082de8a065dab34cb029302e875546e57ca96c3bddee252bd215772c58cb24fd71feafcca053e6fe058037ac206e18bb802401c083db816f4226ad8e57410dae375aab4e50b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008302878a0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012ab9012702f9012301808007830f424094000000000000000000000000000000000000010080b8bf01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a0e30b91ed2373b3635ef68da180c0b80afe4158e57b0441e3d0da4945d6b20ef9a026ea853b7c0850fc3b126be4c20b441215cb8ee94954a705721a4405e7608910c0c0", + "rlp": "0xf9036ff9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03879ff5b91815d383e3055ded5bb3b83f276716e6686e53a8ce16ca5d2f073cda07ac705a4ed201c330fb12e25758f551ff34a41e78a8155cff166a9b521742577a0f7c0e1bfbd82446f912d1cf2a191b0abca1de667d6182506064ef4260e628c47b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830289be0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012ab9012702f9012301808007830f424094000000000000000000000000000000000000010080b8bf01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000008f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43c001a077aaa6cfca256af621f2eac99b5047e388188cfd5e82fc29021aadd9829048f9a0250a53ca94c6c886026606d517ff0f1df062e6cb34f5fb5659cf994be1c0d213c0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x23a7a27f608e59a2629f80716f7c45a19bf559fa8269e73dfe3c8cb253082de8", - "transactionsTrie": "0x65dab34cb029302e875546e57ca96c3bddee252bd215772c58cb24fd71feafcc", - "receiptTrie": "0x53e6fe058037ac206e18bb802401c083db816f4226ad8e57410dae375aab4e50", + "stateRoot": "0x3879ff5b91815d383e3055ded5bb3b83f276716e6686e53a8ce16ca5d2f073cd", + "transactionsTrie": "0x7ac705a4ed201c330fb12e25758f551ff34a41e78a8155cff166a9b521742577", + "receiptTrie": "0xf7c0e1bfbd82446f912d1cf2a191b0abca1de667d6182506064ef4260e628c47", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x02878a", + "gasUsed": "0x0289be", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -10774,7 +14706,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x7a66efa56520c6ec41340b5a88d5becf27ac56d3e697d42ccc7ec7ffc5029a45" + "hash": "0x55fc1cd0ebf111ab1c7f7af4ba0119c31bc69e514c05aa2a00b5c2b41cdeaf59" }, "blocknumber": "1", "transactions": [ @@ -10787,11 +14719,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "data": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000008f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43", "accessList": [], "v": "0x01", - "r": "0xe30b91ed2373b3635ef68da180c0b80afe4158e57b0441e3d0da4945d6b20ef9", - "s": "0x26ea853b7c0850fc3b126be4c20b441215cb8ee94954a705721a4405e7608910", + "r": "0x77aaa6cfca256af621f2eac99b5047e388188cfd5e82fc29021aadd9829048f9", + "s": "0x250a53ca94c6c886026606d517ff0f1df062e6cb34f5fb5659cf994be1c0d213", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -10799,7 +14731,7 @@ "withdrawals": [] } ], - "lastblockhash": "0x7a66efa56520c6ec41340b5a88d5becf27ac56d3e697d42ccc7ec7ffc5029a45", + "lastblockhash": "0x55fc1cd0ebf111ab1c7f7af4ba0119c31bc69e514c05aa2a00b5c2b41cdeaf59", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -10826,9 +14758,9 @@ "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", + "0x01": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b", "0x02": "0x01", - "0x04": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", + "0x04": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b", "0x05": "0x01" } }, @@ -10842,16 +14774,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee4b3a", + "balance": "0xffffffffffffee3bce", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "083-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_y_64b9ff2b8f7dddee": { + "113-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_y_64b9ff2b8f7dddee": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -10882,19 +14814,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e69bffbc8446aefcdf682f92fe76a3a2848c9a6af46b1ef98f5e967527572af5a01b614f0b09a6680c33d082a10e0db3671e14d0e5f407141d8b65ec14d2f1afa4a0f97e45ecf4df2a6dd484502cd57592d7dcbb722cdb94891939dad70f0daf65e0b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830288ea0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000002b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0a92919408464945f4fa428f9f871923392b52cd22201025e26204a85f4193be1a07917f522774ceb1a157691e2812ad5033ae174671ce62514eff277b1ae5b29b8c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0607eaf2446bc3fc79e04124d7e1c53fdecb7e97834458dc61455f0112bf57f28a0332cde0d984c44e6833e4aa5c4e004560828fff4e68539cf86a9f721090eae2fa0281d011e3703d82d12e71bfe03d8ec373698d75050e7ed8b449760541deb8771b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b1e0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b000000000000000000000000000000000000000000000000000000000000000173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000028f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43c001a0b00a7cf98776dca380782d67b08492ed25d0db5c382a0e496f38f781082b4b05a0266ecd5062bf26f227a7a80e441e593629d0f373a074e41d5b451103d6ba0b0ec0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xe69bffbc8446aefcdf682f92fe76a3a2848c9a6af46b1ef98f5e967527572af5", - "transactionsTrie": "0x1b614f0b09a6680c33d082a10e0db3671e14d0e5f407141d8b65ec14d2f1afa4", - "receiptTrie": "0xf97e45ecf4df2a6dd484502cd57592d7dcbb722cdb94891939dad70f0daf65e0", + "stateRoot": "0x607eaf2446bc3fc79e04124d7e1c53fdecb7e97834458dc61455f0112bf57f28", + "transactionsTrie": "0x332cde0d984c44e6833e4aa5c4e004560828fff4e68539cf86a9f721090eae2f", + "receiptTrie": "0x281d011e3703d82d12e71bfe03d8ec373698d75050e7ed8b449760541deb8771", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x0288ea", + "gasUsed": "0x028b1e", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -10904,7 +14836,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xecff40d573001e90148a7464e381bc2c7c47aef98c9dabca68a36ba4523aff00" + "hash": "0x1e0046d5a628fa96400e3aef310613c0d044d79b3bbff3818fce9c6294e3cea6" }, "blocknumber": "1", "transactions": [ @@ -10917,11 +14849,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000002b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "data": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b000000000000000000000000000000000000000000000000000000000000000173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000028f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43", "accessList": [], - "v": "0x00", - "r": "0xa92919408464945f4fa428f9f871923392b52cd22201025e26204a85f4193be1", - "s": "0x7917f522774ceb1a157691e2812ad5033ae174671ce62514eff277b1ae5b29b8", + "v": "0x01", + "r": "0xb00a7cf98776dca380782d67b08492ed25d0db5c382a0e496f38f781082b4b05", + "s": "0x266ecd5062bf26f227a7a80e441e593629d0f373a074e41d5b451103d6ba0b0e", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -10929,7 +14861,7 @@ "withdrawals": [] } ], - "lastblockhash": "0xecff40d573001e90148a7464e381bc2c7c47aef98c9dabca68a36ba4523aff00", + "lastblockhash": "0x1e0046d5a628fa96400e3aef310613c0d044d79b3bbff3818fce9c6294e3cea6", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -10956,9 +14888,9 @@ "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", + "0x01": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b", "0x02": "0x01", - "0x04": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", + "0x04": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b", "0x05": "0x01" } }, @@ -10972,16 +14904,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee419a", + "balance": "0xffffffffffffee322e", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "084-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_y_b358a2e763727b70": { + "114-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_y_b358a2e763727b70": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -11012,19 +14944,19 @@ }, "blocks": [ { - "rlp": "0xf90371f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0943595a959ae0d0e39482e14976a0a81b7df1cf1cd6a7fbf20a431cc34700fe1a0255ad6f490f8c0a961b2b9769587c8dd330acbbfe52cf241fd647469abb65123a096e82396cb26c037436eb490f9afce540c053a724cf6baa0f311afcbbb237e0db9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830287980c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012cb9012902f9012501808007830f424094000000000000000000000000000000000000010080b8c101466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a0051ca0c4065fb5e81eba35abe4e22f15e972d1c0b3504ebab90de705bf67b80ca07e534a598742636a3e139b6a50a80f4f7532a45bef0bf6cc5addc97ae40d164ec0c0", + "rlp": "0xf90371f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05cfd0a413cdd4db8087671ad9544967f07640f8406a0bc36523a1bfd4cd6827fa093ae44f7eb6de35ab5cec65e3d687c5a9ef1d0f99c15bb2853307aaf31ddbceea017703851fb93a6fada8e626927d5235096f7cdd7f463b362770cde38a98957fdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830289cc0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012cb9012902f9012501808007830f424094000000000000000000000000000000000000010080b8c101e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000008f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43c001a083d661d39d4f15825f4c1dee4103464fc0629b3049dc4670ba8f0d5ccdb8342ca07836a664ad89f040e458020c7abbfe427d160b0525f761bbe260982120ec4052c0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x943595a959ae0d0e39482e14976a0a81b7df1cf1cd6a7fbf20a431cc34700fe1", - "transactionsTrie": "0x255ad6f490f8c0a961b2b9769587c8dd330acbbfe52cf241fd647469abb65123", - "receiptTrie": "0x96e82396cb26c037436eb490f9afce540c053a724cf6baa0f311afcbbb237e0d", + "stateRoot": "0x5cfd0a413cdd4db8087671ad9544967f07640f8406a0bc36523a1bfd4cd6827f", + "transactionsTrie": "0x93ae44f7eb6de35ab5cec65e3d687c5a9ef1d0f99c15bb2853307aaf31ddbcee", + "receiptTrie": "0x17703851fb93a6fada8e626927d5235096f7cdd7f463b362770cde38a98957fd", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x028798", + "gasUsed": "0x0289cc", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -11034,7 +14966,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x3ac4479ca315cbcb68c7121e534a13f83d4b2aebc38d1ea68973b34e3b5eed1a" + "hash": "0x458f520c98ce65310e09122e2f0d32ea3c4699dfd1e4fadc1e7d0f6db9287c6d" }, "blocknumber": "1", "transactions": [ @@ -11047,11 +14979,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "data": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000008f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43", "accessList": [], "v": "0x01", - "r": "0x051ca0c4065fb5e81eba35abe4e22f15e972d1c0b3504ebab90de705bf67b80c", - "s": "0x7e534a598742636a3e139b6a50a80f4f7532a45bef0bf6cc5addc97ae40d164e", + "r": "0x83d661d39d4f15825f4c1dee4103464fc0629b3049dc4670ba8f0d5ccdb8342c", + "s": "0x7836a664ad89f040e458020c7abbfe427d160b0525f761bbe260982120ec4052", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -11059,7 +14991,7 @@ "withdrawals": [] } ], - "lastblockhash": "0x3ac4479ca315cbcb68c7121e534a13f83d4b2aebc38d1ea68973b34e3b5eed1a", + "lastblockhash": "0x458f520c98ce65310e09122e2f0d32ea3c4699dfd1e4fadc1e7d0f6db9287c6d", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -11086,9 +15018,9 @@ "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", + "0x01": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b", "0x02": "0x01", - "0x04": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", + "0x04": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b", "0x05": "0x01" } }, @@ -11102,16 +15034,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee4ad8", + "balance": "0xffffffffffffee3b6c", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "085-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_y_eb0601fec84cc5e9": { + "115-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_y_eb0601fec84cc5e9": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -11142,19 +15074,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e69bffbc8446aefcdf682f92fe76a3a2848c9a6af46b1ef98f5e967527572af5a0594edb0e8f2dabb7d50259c8a1cb4dc0b8abd406a540682f183c141bf75fd224a0f97e45ecf4df2a6dd484502cd57592d7dcbb722cdb94891939dad70f0daf65e0b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830288ea0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a0c738f3ecb4e88dcd129c914104bbb6ad1148f39118260c088e9a5532e0366673a05992f2aa41bf35a8000c0b5e6e8f43e3398550a8d0e866df3154b6583b7ff3f7c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0607eaf2446bc3fc79e04124d7e1c53fdecb7e97834458dc61455f0112bf57f28a08b69bc324283550bef097396958b348fbe045daf8f10e08e050e6be2b089549aa0281d011e3703d82d12e71bfe03d8ec373698d75050e7ed8b449760541deb8771b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b1e0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b000000000000000000000000000000000000000000000000000000000000000173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000018f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43c001a04b6b9296b206e24b67ddf2901fdc1892d450b5006bfbded2b5319759a3a72b4fa060b25b41af14e878c6ef9e3cc1b2b7f61820047c4185e4fbf5c3d9b652a07641c0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xe69bffbc8446aefcdf682f92fe76a3a2848c9a6af46b1ef98f5e967527572af5", - "transactionsTrie": "0x594edb0e8f2dabb7d50259c8a1cb4dc0b8abd406a540682f183c141bf75fd224", - "receiptTrie": "0xf97e45ecf4df2a6dd484502cd57592d7dcbb722cdb94891939dad70f0daf65e0", + "stateRoot": "0x607eaf2446bc3fc79e04124d7e1c53fdecb7e97834458dc61455f0112bf57f28", + "transactionsTrie": "0x8b69bc324283550bef097396958b348fbe045daf8f10e08e050e6be2b089549a", + "receiptTrie": "0x281d011e3703d82d12e71bfe03d8ec373698d75050e7ed8b449760541deb8771", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x0288ea", + "gasUsed": "0x028b1e", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -11164,7 +15096,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xd0e445ea732ed1d7f549a59f8e11964fda88415d27aba5dd51f9bb07aa73774a" + "hash": "0x02407bcca980c43ba172d4fc38b0a13fd411c6609ae1a5aeb00814efa0f0dd7e" }, "blocknumber": "1", "transactions": [ @@ -11177,11 +15109,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "data": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b000000000000000000000000000000000000000000000000000000000000000173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000018f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43", "accessList": [], "v": "0x01", - "r": "0xc738f3ecb4e88dcd129c914104bbb6ad1148f39118260c088e9a5532e0366673", - "s": "0x5992f2aa41bf35a8000c0b5e6e8f43e3398550a8d0e866df3154b6583b7ff3f7", + "r": "0x4b6b9296b206e24b67ddf2901fdc1892d450b5006bfbded2b5319759a3a72b4f", + "s": "0x60b25b41af14e878c6ef9e3cc1b2b7f61820047c4185e4fbf5c3d9b652a07641", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -11189,7 +15121,7 @@ "withdrawals": [] } ], - "lastblockhash": "0xd0e445ea732ed1d7f549a59f8e11964fda88415d27aba5dd51f9bb07aa73774a", + "lastblockhash": "0x02407bcca980c43ba172d4fc38b0a13fd411c6609ae1a5aeb00814efa0f0dd7e", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -11216,9 +15148,9 @@ "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", + "0x01": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b", "0x02": "0x01", - "0x04": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", + "0x04": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b", "0x05": "0x01" } }, @@ -11232,16 +15164,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee419a", + "balance": "0xffffffffffffee322e", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "086-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_z_35d08d612aad2197": { + "116-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_z_35d08d612aad2197": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -11272,19 +15204,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02c417b818b0e2db26fc1daff3a25a4f5bff141c3db1844a55cd56baf15c83415a05ca3f5cec2142aca5d19dafdb37b94a24400525daed5f6031ee1c419180baf18a0b8173593abf172b0effa2ae8199eec3ba80ea8126d4b220a5e847b18b0bd5ef2b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028a520c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a08c1986e01288994845715251b1b7b4dac41d9ba7eb0619c9143b1743f68e4af5a06a17c79af57196c8285cc52da57e068ba39724db02910692919ded9690d655c3c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0637aa2f5082dbba51b84384c92da7f556fb9e062fa8425ab637ca6c1b28f314aa0017a2907b7e8ebf33b4ac0f85b148adb6a0be9ee18fb4dd7d915abd92d6e6d46a09fc500ac1e9d91018d2eb0c7325b94c3ad5e3cf88c8354bedb47e138ba1ad117b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028cb60c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549bffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f840641ec0d0c0d2b77b2d5a393b329442721fad05ab78c7b98f2aa3c20ec98f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43c080a03aebd07c5040166d3a73f53a6ba1e350144f6ecc5931a0b89308da57d4dc8a49a039cabde8293a6f0643a2e90b0165c066eccba206b6e1b5000160e80f3a7c4decc0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x2c417b818b0e2db26fc1daff3a25a4f5bff141c3db1844a55cd56baf15c83415", - "transactionsTrie": "0x5ca3f5cec2142aca5d19dafdb37b94a24400525daed5f6031ee1c419180baf18", - "receiptTrie": "0xb8173593abf172b0effa2ae8199eec3ba80ea8126d4b220a5e847b18b0bd5ef2", + "stateRoot": "0x637aa2f5082dbba51b84384c92da7f556fb9e062fa8425ab637ca6c1b28f314a", + "transactionsTrie": "0x017a2907b7e8ebf33b4ac0f85b148adb6a0be9ee18fb4dd7d915abd92d6e6d46", + "receiptTrie": "0x9fc500ac1e9d91018d2eb0c7325b94c3ad5e3cf88c8354bedb47e138ba1ad117", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x028a52", + "gasUsed": "0x028cb6", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -11294,7 +15226,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xe9a28a9dc91f0e8032fd8cc83810c42bece2d17ee1018f8a2b5d90133edc3406" + "hash": "0xee00f1169478c7105fc5d5bad6d9aaf0c965d0e90c43b1ab061aee80c08abedf" }, "blocknumber": "1", "transactions": [ @@ -11307,11 +15239,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "data": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549bffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f840641ec0d0c0d2b77b2d5a393b329442721fad05ab78c7b98f2aa3c20ec98f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43", "accessList": [], - "v": "0x01", - "r": "0x8c1986e01288994845715251b1b7b4dac41d9ba7eb0619c9143b1743f68e4af5", - "s": "0x6a17c79af57196c8285cc52da57e068ba39724db02910692919ded9690d655c3", + "v": "0x00", + "r": "0x3aebd07c5040166d3a73f53a6ba1e350144f6ecc5931a0b89308da57d4dc8a49", + "s": "0x39cabde8293a6f0643a2e90b0165c066eccba206b6e1b5000160e80f3a7c4dec", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -11319,7 +15251,7 @@ "withdrawals": [] } ], - "lastblockhash": "0xe9a28a9dc91f0e8032fd8cc83810c42bece2d17ee1018f8a2b5d90133edc3406", + "lastblockhash": "0xee00f1169478c7105fc5d5bad6d9aaf0c965d0e90c43b1ab061aee80c08abedf", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -11346,9 +15278,9 @@ "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", + "0x01": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b", "0x02": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", - "0x04": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", + "0x04": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b", "0x05": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" } }, @@ -11362,16 +15294,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee37c2", + "balance": "0xffffffffffffee2706", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "087-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_z_4aa6def8c35c9097": { + "117-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_z_4aa6def8c35c9097": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -11402,19 +15334,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0dab4dfd445626b49dff1c06829f9906f5f19cd26d77c20099d5034d92f237233a0b1cd8b1a03cd886cb84a9d797f047314a59c04f5838091181e92dce560098464a098d9a33413478e62bb734c7983392a3e48eaa8c8ce97de39c2b575e2fdaece66b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830289920c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0ffffffffffffffffffffffffffffffff0000000000000000000000000000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0b29c6647053a7e8584a8eba50d63d581c8ee115be69e96a955f63a532ecd4a71a02761c8808125c2a9a5daa99416fe3b7a613e6256ca8ef1b8b9b639205f744638c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00600ccad6edf4943407456f7b1b25c3a5cd14a1e54fc2f5d6511a9b12c080036a066207d11917d7a1e0c535fb4b40afa3161907a56dd8be2381bf90ab8b31478e6a0baab03e120fbd6154d0d7e52a3d4d42c290ad7b221a14c30651834e4d727d08bb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028bf60c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549bffffffffffffffffffffffffffffffff0000000000000000000000000000000060f840641ec0d0c0d2b77b2d5a393b329442721fad05ab78c7b98f2aa3c20ec98f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43c080a04859e01fa2588cfd8b5faeebb1d6d0b07ea41da182f1d2414e29d94ee646c442a06469561adbcefb90fb397c819b2ee2981190fe35de675b9c9bff935a54f722c2c0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xdab4dfd445626b49dff1c06829f9906f5f19cd26d77c20099d5034d92f237233", - "transactionsTrie": "0xb1cd8b1a03cd886cb84a9d797f047314a59c04f5838091181e92dce560098464", - "receiptTrie": "0x98d9a33413478e62bb734c7983392a3e48eaa8c8ce97de39c2b575e2fdaece66", + "stateRoot": "0x0600ccad6edf4943407456f7b1b25c3a5cd14a1e54fc2f5d6511a9b12c080036", + "transactionsTrie": "0x66207d11917d7a1e0c535fb4b40afa3161907a56dd8be2381bf90ab8b31478e6", + "receiptTrie": "0xbaab03e120fbd6154d0d7e52a3d4d42c290ad7b221a14c30651834e4d727d08b", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x028992", + "gasUsed": "0x028bf6", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -11424,7 +15356,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x934ae6cc24826360d9634792120d9eceac67aad32ef6b50aa933b5ed7f2510a4" + "hash": "0x33c644ca641428422b7838e6bb141a1c6ad3748561793856b92b28ddc1d60d8b" }, "blocknumber": "1", "transactions": [ @@ -11437,11 +15369,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0ffffffffffffffffffffffffffffffff0000000000000000000000000000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "data": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549bffffffffffffffffffffffffffffffff0000000000000000000000000000000060f840641ec0d0c0d2b77b2d5a393b329442721fad05ab78c7b98f2aa3c20ec98f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43", "accessList": [], "v": "0x00", - "r": "0xb29c6647053a7e8584a8eba50d63d581c8ee115be69e96a955f63a532ecd4a71", - "s": "0x2761c8808125c2a9a5daa99416fe3b7a613e6256ca8ef1b8b9b639205f744638", + "r": "0x4859e01fa2588cfd8b5faeebb1d6d0b07ea41da182f1d2414e29d94ee646c442", + "s": "0x6469561adbcefb90fb397c819b2ee2981190fe35de675b9c9bff935a54f722c2", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -11449,7 +15381,7 @@ "withdrawals": [] } ], - "lastblockhash": "0x934ae6cc24826360d9634792120d9eceac67aad32ef6b50aa933b5ed7f2510a4", + "lastblockhash": "0x33c644ca641428422b7838e6bb141a1c6ad3748561793856b92b28ddc1d60d8b", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -11476,9 +15408,9 @@ "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", + "0x01": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b", "0x02": "0xffffffffffffffffffffffffffffffff00000000000000000000000000000000", - "0x04": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", + "0x04": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b", "0x05": "0xffffffffffffffffffffffffffffffff00000000000000000000000000000000" } }, @@ -11492,16 +15424,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee3d02", + "balance": "0xffffffffffffee2c46", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "088-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_z_4e51cef08a61606f": { + "118-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_z_4e51cef08a61606f": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -11532,19 +15464,19 @@ }, "blocks": [ { - "rlp": "0xf9036ff9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d3ff6cd74d310207f5b77ff6e1269e994ce9ddc06126cfb81d789cbd7f9b36d8a0fcab93baf6a6f901168c6f3238af1b9fc9dfd51d557443a173c0910e127622e3a00da4273aae3ce52206102e4d18a0acf48a22389212630d9e24e522dbca50feb9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830288ce0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012ab9012702f9012301808007830f424094000000000000000000000000000000000000010080b8bf01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c00000000000000000000000000000000000000000000000000000000000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a04e78fd3c252e7a8b6644e07cebf1032aa1cd7700c795cca058da635407870b65a00bdcc6d2ce7e0405989da40e6d60a07508c93e0ddcf7d500d003bbce0391199bc0c0", + "rlp": "0xf9036ff9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05bf94f733496b99b5f0392c96e0292a5be0de56456843d3ebae0da6231ace610a0f919a850dfff60a9bb847fa9bdfb46abef75efcc88854f5b36b493e285aa1312a07f0e9a9e3efb922217626a18737094dda402867f2bd22c59ab7c19cf71bef69eb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b320c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012ab9012702f9012301808007830f424094000000000000000000000000000000000000010080b8bf01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b0000000000000000000000000000000000000000000000000000000000000060f840641ec0d0c0d2b77b2d5a393b329442721fad05ab78c7b98f2aa3c20ec98f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43c001a0dc92bf5b57d6918c2ecc58bdca8c9e7e5d974202f55f5022d2c3dad0fc8f7ed0a01597763f43fc8db1accfab0f57f0a952bc397f0b55ca95428d9d9cbd3ddff5bdc0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xd3ff6cd74d310207f5b77ff6e1269e994ce9ddc06126cfb81d789cbd7f9b36d8", - "transactionsTrie": "0xfcab93baf6a6f901168c6f3238af1b9fc9dfd51d557443a173c0910e127622e3", - "receiptTrie": "0x0da4273aae3ce52206102e4d18a0acf48a22389212630d9e24e522dbca50feb9", + "stateRoot": "0x5bf94f733496b99b5f0392c96e0292a5be0de56456843d3ebae0da6231ace610", + "transactionsTrie": "0xf919a850dfff60a9bb847fa9bdfb46abef75efcc88854f5b36b493e285aa1312", + "receiptTrie": "0x7f0e9a9e3efb922217626a18737094dda402867f2bd22c59ab7c19cf71bef69e", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x0288ce", + "gasUsed": "0x028b32", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -11554,7 +15486,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x75169d94fa394fc09ce1a74c7d7389697cbe98cfadb2b654cb0a25df2e451409" + "hash": "0xae55b53c3c22cdff16f116a8887d8f6c2110bf2ec83d645d9681fcf0589015e7" }, "blocknumber": "1", "transactions": [ @@ -11567,11 +15499,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c00000000000000000000000000000000000000000000000000000000000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "data": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b0000000000000000000000000000000000000000000000000000000000000060f840641ec0d0c0d2b77b2d5a393b329442721fad05ab78c7b98f2aa3c20ec98f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43", "accessList": [], "v": "0x01", - "r": "0x4e78fd3c252e7a8b6644e07cebf1032aa1cd7700c795cca058da635407870b65", - "s": "0x0bdcc6d2ce7e0405989da40e6d60a07508c93e0ddcf7d500d003bbce0391199b", + "r": "0xdc92bf5b57d6918c2ecc58bdca8c9e7e5d974202f55f5022d2c3dad0fc8f7ed0", + "s": "0x1597763f43fc8db1accfab0f57f0a952bc397f0b55ca95428d9d9cbd3ddff5bd", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -11579,7 +15511,7 @@ "withdrawals": [] } ], - "lastblockhash": "0x75169d94fa394fc09ce1a74c7d7389697cbe98cfadb2b654cb0a25df2e451409", + "lastblockhash": "0xae55b53c3c22cdff16f116a8887d8f6c2110bf2ec83d645d9681fcf0589015e7", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -11606,10 +15538,10 @@ "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", - "0x02": "0x73", - "0x04": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", - "0x05": "0x73" + "0x01": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b", + "0x02": "0x60", + "0x04": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b", + "0x05": "0x60" } }, "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { @@ -11622,16 +15554,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee425e", + "balance": "0xffffffffffffee31a2", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "089-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_z_64b9ff2b8f7dddee": { + "119-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_z_64b9ff2b8f7dddee": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -11662,19 +15594,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02f757f7cc2744f6e0d671bb30b996b7928e865178095df810d837e53b65b129ca052221f8b620a6000931001e720ee5d605c58c3f7f06202aa124ce700664a0f48a0f75127f30eb39591f40d155683d32469388dcaddf16ebf6ebbd474be59d8274ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028a2e0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000273eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a079263655ddf6116b2e408aa31c73c021ea9543147399de7529457ff0d0b22574a03ea1ea2404610dbd0d438d960eaf4fc18a3fff4b25741dda5a2e2dd9c1178a34c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f502939d8be56f2cdbe6cd0d8eac7307502657015098e6afa6587c4091254a1aa0652e0784ac994e3634165a3acdc2c735028c850d7dc3cb7efe444e8e262af7a6a0087892738f75126ba814bd80218bd4f9ee0f6f5ce72052f19ba2e6ad255b0069b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028c920c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000260f840641ec0d0c0d2b77b2d5a393b329442721fad05ab78c7b98f2aa3c20ec98f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43c080a0d2274399a1fc6490f07ef339b35a8cb06c033ab1dd1e435e3197218c3f00169aa06b17e6bfb2b9af401a2401e2aa0075215d56f0c9727b3652edffd4f62dce05d9c0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x2f757f7cc2744f6e0d671bb30b996b7928e865178095df810d837e53b65b129c", - "transactionsTrie": "0x52221f8b620a6000931001e720ee5d605c58c3f7f06202aa124ce700664a0f48", - "receiptTrie": "0xf75127f30eb39591f40d155683d32469388dcaddf16ebf6ebbd474be59d8274a", + "stateRoot": "0xf502939d8be56f2cdbe6cd0d8eac7307502657015098e6afa6587c4091254a1a", + "transactionsTrie": "0x652e0784ac994e3634165a3acdc2c735028c850d7dc3cb7efe444e8e262af7a6", + "receiptTrie": "0x087892738f75126ba814bd80218bd4f9ee0f6f5ce72052f19ba2e6ad255b0069", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x028a2e", + "gasUsed": "0x028c92", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -11684,7 +15616,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x7b8246ab8b598e1f6c2cc86df964065ec0c489d75efb0f695dabea8b1cd8ef07" + "hash": "0x59d95e95bbf0cc7200741751247f28b2b9732ffc0eceac319847072e4ffbb925" }, "blocknumber": "1", "transactions": [ @@ -11697,11 +15629,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000273eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "data": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000260f840641ec0d0c0d2b77b2d5a393b329442721fad05ab78c7b98f2aa3c20ec98f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43", "accessList": [], - "v": "0x01", - "r": "0x79263655ddf6116b2e408aa31c73c021ea9543147399de7529457ff0d0b22574", - "s": "0x3ea1ea2404610dbd0d438d960eaf4fc18a3fff4b25741dda5a2e2dd9c1178a34", + "v": "0x00", + "r": "0xd2274399a1fc6490f07ef339b35a8cb06c033ab1dd1e435e3197218c3f00169a", + "s": "0x6b17e6bfb2b9af401a2401e2aa0075215d56f0c9727b3652edffd4f62dce05d9", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -11709,7 +15641,7 @@ "withdrawals": [] } ], - "lastblockhash": "0x7b8246ab8b598e1f6c2cc86df964065ec0c489d75efb0f695dabea8b1cd8ef07", + "lastblockhash": "0x59d95e95bbf0cc7200741751247f28b2b9732ffc0eceac319847072e4ffbb925", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -11736,9 +15668,9 @@ "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", + "0x01": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b", "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000002", - "0x04": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", + "0x04": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b", "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000002" } }, @@ -11752,16 +15684,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee38be", + "balance": "0xffffffffffffee2802", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "090-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_z_b358a2e763727b70": { + "120-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_z_b358a2e763727b70": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -11792,19 +15724,19 @@ }, "blocks": [ { - "rlp": "0xf90371f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a02cc75fd21edf6395080463557a100710569136815eacc6d18c55eeea7a6631a095ed2c0038000e4e2fced87aace38cad7af6395c4a500ae0812ee6a1652ddfc6a0d79b0e971decec26b5e95d8196c13792361c0e9d6bf24b8bfc6f563afa8dfbd6b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301ed640c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012cb9012902f9012501808007830f424094000000000000000000000000000000000000010080b8c101466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c000000000000000000000000000000000000000000000000000000000000000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0bdd0dcffe4aedd1595f77fe328a75de18ffd08ef5d16911892edf2f2ebe19bf8a00ee8d195d4e205e70caf7c6c73d6bb04dce350ad55ee2aeed494dc7b4c9ac8a4c0c0", + "rlp": "0xf90371f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06c3584b64e62a4336e2d315258050e576e22505798ae583b70d377f172e84e96a0c1148f29def9f8445cbad3e7a505de99ea4c83958dfad69e4c3b868f39881f8fa000f385f6ed5eff6fd324f31f3d641c684e177e907bd499ccdd25e3e60b13cbf4b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301efc80c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012cb9012902f9012501808007830f424094000000000000000000000000000000000000010080b8c101e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b00000000000000000000000000000000000000000000000000000000000000000060f840641ec0d0c0d2b77b2d5a393b329442721fad05ab78c7b98f2aa3c20ec98f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43c001a0539e871f55bde922648b7ef1b42a7bfb36eacbca5d5c925a07367131c7ce7f53a072f7a1e23e3f10174df4a66dff6674a9cf2700fd4ee120f635287704349a4ef4c0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xa02cc75fd21edf6395080463557a100710569136815eacc6d18c55eeea7a6631", - "transactionsTrie": "0x95ed2c0038000e4e2fced87aace38cad7af6395c4a500ae0812ee6a1652ddfc6", - "receiptTrie": "0xd79b0e971decec26b5e95d8196c13792361c0e9d6bf24b8bfc6f563afa8dfbd6", + "stateRoot": "0x6c3584b64e62a4336e2d315258050e576e22505798ae583b70d377f172e84e96", + "transactionsTrie": "0xc1148f29def9f8445cbad3e7a505de99ea4c83958dfad69e4c3b868f39881f8f", + "receiptTrie": "0x00f385f6ed5eff6fd324f31f3d641c684e177e907bd499ccdd25e3e60b13cbf4", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x01ed64", + "gasUsed": "0x01efc8", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -11814,7 +15746,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x6d37c6272645c9c44e324c1df326cc79c81bf86e4a5ce64f2fb66e15568ce68b" + "hash": "0xee77ca29d9953e53bebc59a3a16f8d6c544cb6e07eb7dc3b5864c0e6811b516d" }, "blocknumber": "1", "transactions": [ @@ -11827,11 +15759,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c000000000000000000000000000000000000000000000000000000000000000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "data": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b00000000000000000000000000000000000000000000000000000000000000000060f840641ec0d0c0d2b77b2d5a393b329442721fad05ab78c7b98f2aa3c20ec98f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43", "accessList": [], - "v": "0x00", - "r": "0xbdd0dcffe4aedd1595f77fe328a75de18ffd08ef5d16911892edf2f2ebe19bf8", - "s": "0x0ee8d195d4e205e70caf7c6c73d6bb04dce350ad55ee2aeed494dc7b4c9ac8a4", + "v": "0x01", + "r": "0x539e871f55bde922648b7ef1b42a7bfb36eacbca5d5c925a07367131c7ce7f53", + "s": "0x72f7a1e23e3f10174df4a66dff6674a9cf2700fd4ee120f635287704349a4ef4", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -11839,7 +15771,7 @@ "withdrawals": [] } ], - "lastblockhash": "0x6d37c6272645c9c44e324c1df326cc79c81bf86e4a5ce64f2fb66e15568ce68b", + "lastblockhash": "0xee77ca29d9953e53bebc59a3a16f8d6c544cb6e07eb7dc3b5864c0e6811b516d", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -11866,8 +15798,8 @@ "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", - "0x04": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0" + "0x01": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b", + "0x04": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b" } }, "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { @@ -11880,16 +15812,16 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xfffffffffffff28244", + "balance": "0xfffffffffffff27188", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "091-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_z_eb0601fec84cc5e9": { + "121-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_z_eb0601fec84cc5e9": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -11920,19 +15852,19 @@ }, "blocks": [ { - "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa080d13bc26b49fda05e0b413085255efdbda1a7492220cde9c6b05971a67bfd7ea0fd95219818299e41c673e617bdd8c85da456e43751caec8e388fcacdd3ad90d7a0f75127f30eb39591f40d155683d32469388dcaddf16ebf6ebbd474be59d8274ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028a2e0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a09ce512af47f3d82884585500c239e4da9e6998c7068fefbcb00fe9b63919f548a0152e24207412dbebbea4bd7f704cff74fc30555912e0d83fcfee674d22f01fddc0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ed8d7e332bb0737595599d24d965af1fd2fd9e00fcff0b0759b679dc7789cf4ba001be2deaf52612f3bf45fb83d183e83e29b5979db1aeae9ad1308023c56b2ac9a0087892738f75126ba814bd80218bd4f9ee0f6f5ce72052f19ba2e6ad255b0069b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028c920c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000160f840641ec0d0c0d2b77b2d5a393b329442721fad05ab78c7b98f2aa3c20ec98f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43c080a0bf0e68b6a6de351f9c9ac0746fe0a7af073d2499444796a6343d871585476fa6a062e873085625eb8369f0ca10d3db29d6edf0b18ddf13f9a1e802a65e8e822350c0c0", "blockHeader": { "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x80d13bc26b49fda05e0b413085255efdbda1a7492220cde9c6b05971a67bfd7e", - "transactionsTrie": "0xfd95219818299e41c673e617bdd8c85da456e43751caec8e388fcacdd3ad90d7", - "receiptTrie": "0xf75127f30eb39591f40d155683d32469388dcaddf16ebf6ebbd474be59d8274a", + "stateRoot": "0xed8d7e332bb0737595599d24d965af1fd2fd9e00fcff0b0759b679dc7789cf4b", + "transactionsTrie": "0x01be2deaf52612f3bf45fb83d183e83e29b5979db1aeae9ad1308023c56b2ac9", + "receiptTrie": "0x087892738f75126ba814bd80218bd4f9ee0f6f5ce72052f19ba2e6ad255b0069", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x028a2e", + "gasUsed": "0x028c92", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -11942,7 +15874,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x01ee849a96853fef7db6ce0b45fe5c1984d8a8cf68959dc251af65323df3f3b8" + "hash": "0xbd93f361d0571ac0a63d2e1d670ac581e7a55ddd18e579687bbc184c74e163f7" }, "blocknumber": "1", "transactions": [ @@ -11955,11 +15887,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "data": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000160f840641ec0d0c0d2b77b2d5a393b329442721fad05ab78c7b98f2aa3c20ec98f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43", "accessList": [], - "v": "0x01", - "r": "0x9ce512af47f3d82884585500c239e4da9e6998c7068fefbcb00fe9b63919f548", - "s": "0x152e24207412dbebbea4bd7f704cff74fc30555912e0d83fcfee674d22f01fdd", + "v": "0x00", + "r": "0xbf0e68b6a6de351f9c9ac0746fe0a7af073d2499444796a6343d871585476fa6", + "s": "0x62e873085625eb8369f0ca10d3db29d6edf0b18ddf13f9a1e802a65e8e822350", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -11967,7 +15899,7 @@ "withdrawals": [] } ], - "lastblockhash": "0x01ee849a96853fef7db6ce0b45fe5c1984d8a8cf68959dc251af65323df3f3b8", + "lastblockhash": "0xbd93f361d0571ac0a63d2e1d670ac581e7a55ddd18e579687bbc184c74e163f7", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -11994,9 +15926,9 @@ "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", + "0x01": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b", "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001", - "0x04": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", + "0x04": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b", "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" } }, @@ -12010,7 +15942,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee38be", + "balance": "0xffffffffffffee2802", "code": "0x", "storage": {} } diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile/point_evaluation_precompile_gas_tx_to.json b/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile/point_evaluation_precompile_gas_tx_to.json index cbb2b9d8bfd..dc393dff045 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile/point_evaluation_precompile_gas_tx_to.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile/point_evaluation_precompile_gas_tx_to.json @@ -1,7 +1,7 @@ { "000-fork=Cancun-correct_proof-exact_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -114,7 +114,7 @@ }, "001-fork=Cancun-correct_proof-extra_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -227,7 +227,7 @@ }, "002-fork=Cancun-correct_proof-insufficient_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -340,7 +340,7 @@ }, "003-fork=Cancun-incorrect_proof-exact_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -453,7 +453,7 @@ }, "004-fork=Cancun-incorrect_proof-extra_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -566,7 +566,7 @@ }, "005-fork=Cancun-incorrect_proof-insufficient_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile/valid_precompile_calls.json b/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile/valid_precompile_calls.json index 7cf398a5e9f..7ffc96a5620 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile/valid_precompile_calls.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile/valid_precompile_calls.json @@ -1,7 +1,7 @@ { "000-fork=Cancun-success=True-in_bounds_z": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile_gas/point_evaluation_precompile_gas_usage.json b/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile_gas/point_evaluation_precompile_gas_usage.json index 365a3348b71..c91ce729937 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile_gas/point_evaluation_precompile_gas_usage.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile_gas/point_evaluation_precompile_gas_usage.json @@ -1,7 +1,7 @@ { "000-fork=Cancun-proof=correct-exact_gas-call_type=CALL": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -128,7 +128,7 @@ }, "001-fork=Cancun-proof=correct-exact_gas-call_type=DELEGATECALL": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -255,7 +255,7 @@ }, "002-fork=Cancun-proof=correct-exact_gas-call_type=CALLCODE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -382,7 +382,7 @@ }, "003-fork=Cancun-proof=correct-exact_gas-call_type=STATICCALL": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -509,7 +509,7 @@ }, "004-fork=Cancun-proof=correct-insufficient_gas-call_type=CALL": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -636,7 +636,7 @@ }, "005-fork=Cancun-proof=correct-insufficient_gas-call_type=DELEGATECALL": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -763,7 +763,7 @@ }, "006-fork=Cancun-proof=correct-insufficient_gas-call_type=CALLCODE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -890,7 +890,7 @@ }, "007-fork=Cancun-proof=correct-insufficient_gas-call_type=STATICCALL": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1017,7 +1017,7 @@ }, "008-fork=Cancun-proof=correct-extra_gas-call_type=CALL": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1144,7 +1144,7 @@ }, "009-fork=Cancun-proof=correct-extra_gas-call_type=DELEGATECALL": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1271,7 +1271,7 @@ }, "010-fork=Cancun-proof=correct-extra_gas-call_type=CALLCODE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1398,7 +1398,7 @@ }, "011-fork=Cancun-proof=correct-extra_gas-call_type=STATICCALL": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1525,7 +1525,7 @@ }, "012-fork=Cancun-proof=incorrect-exact_gas-call_type=CALL": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1652,7 +1652,7 @@ }, "013-fork=Cancun-proof=incorrect-exact_gas-call_type=DELEGATECALL": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1779,7 +1779,7 @@ }, "014-fork=Cancun-proof=incorrect-exact_gas-call_type=CALLCODE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -1906,7 +1906,7 @@ }, "015-fork=Cancun-proof=incorrect-exact_gas-call_type=STATICCALL": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2033,7 +2033,7 @@ }, "016-fork=Cancun-proof=incorrect-insufficient_gas-call_type=CALL": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2160,7 +2160,7 @@ }, "017-fork=Cancun-proof=incorrect-insufficient_gas-call_type=DELEGATECALL": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2287,7 +2287,7 @@ }, "018-fork=Cancun-proof=incorrect-insufficient_gas-call_type=CALLCODE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2414,7 +2414,7 @@ }, "019-fork=Cancun-proof=incorrect-insufficient_gas-call_type=STATICCALL": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2541,7 +2541,7 @@ }, "020-fork=Cancun-proof=incorrect-extra_gas-call_type=CALL": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2668,7 +2668,7 @@ }, "021-fork=Cancun-proof=incorrect-extra_gas-call_type=DELEGATECALL": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2795,7 +2795,7 @@ }, "022-fork=Cancun-proof=incorrect-extra_gas-call_type=CALLCODE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, @@ -2922,7 +2922,7 @@ }, "023-fork=Cancun-proof=incorrect-extra_gas-call_type=STATICCALL": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, diff --git a/tests/execution-spec-tests/cancun/eip5656_mcopy/mcopy/mcopy_on_empty_memory.json b/tests/execution-spec-tests/cancun/eip5656_mcopy/mcopy/mcopy_on_empty_memory.json index 1caa877aa38..dbba5372b47 100644 --- a/tests/execution-spec-tests/cancun/eip5656_mcopy/mcopy/mcopy_on_empty_memory.json +++ b/tests/execution-spec-tests/cancun/eip5656_mcopy/mcopy/mcopy_on_empty_memory.json @@ -1,7 +1,7 @@ { "000-fork=Cancun-empty_memory-length=0-src=0-dest=0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -131,7 +131,7 @@ }, "001-fork=Cancun-empty_memory-length=0-src=0-dest=32": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -261,7 +261,7 @@ }, "002-fork=Cancun-empty_memory-length=0-src=32-dest=0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -391,7 +391,7 @@ }, "003-fork=Cancun-empty_memory-length=0-src=32-dest=32": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -521,7 +521,7 @@ }, "004-fork=Cancun-empty_memory-length=1-src=0-dest=0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -652,7 +652,7 @@ }, "005-fork=Cancun-empty_memory-length=1-src=0-dest=32": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -783,7 +783,7 @@ }, "006-fork=Cancun-empty_memory-length=1-src=32-dest=0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -914,7 +914,7 @@ }, "007-fork=Cancun-empty_memory-length=1-src=32-dest=32": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, diff --git a/tests/execution-spec-tests/cancun/eip5656_mcopy/mcopy/valid_mcopy_operations.json b/tests/execution-spec-tests/cancun/eip5656_mcopy/mcopy/valid_mcopy_operations.json index ed7d4d5e00a..39929e223c4 100644 --- a/tests/execution-spec-tests/cancun/eip5656_mcopy/mcopy/valid_mcopy_operations.json +++ b/tests/execution-spec-tests/cancun/eip5656_mcopy/mcopy/valid_mcopy_operations.json @@ -1,7 +1,7 @@ { "000-fork=Cancun-zero_inputs": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -140,7 +140,7 @@ }, "001-fork=Cancun-zero_length_out_of_bounds_destination": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -279,7 +279,7 @@ }, "002-fork=Cancun-single_byte_rewrite": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -418,7 +418,7 @@ }, "003-fork=Cancun-full_word_rewrite": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -557,7 +557,7 @@ }, "004-fork=Cancun-single_byte_forward_overwrite": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -696,7 +696,7 @@ }, "005-fork=Cancun-full_word_forward_overwrite": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -835,7 +835,7 @@ }, "006-fork=Cancun-mid_word_single_byte_rewrite": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -974,7 +974,7 @@ }, "007-fork=Cancun-mid_word_single_word_rewrite": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -1113,7 +1113,7 @@ }, "008-fork=Cancun-mid_word_multi_word_rewrite": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -1252,7 +1252,7 @@ }, "009-fork=Cancun-two_words_forward_overwrite": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -1391,7 +1391,7 @@ }, "010-fork=Cancun-two_words_backward_overwrite": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -1530,7 +1530,7 @@ }, "011-fork=Cancun-two_words_backward_overwrite_single_byte_offset": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -1669,7 +1669,7 @@ }, "012-fork=Cancun-single_byte_memory_extension": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -1809,7 +1809,7 @@ }, "013-fork=Cancun-single_word_memory_extension": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -1949,7 +1949,7 @@ }, "014-fork=Cancun-single_word_minus_one_byte_memory_extension": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -2089,7 +2089,7 @@ }, "015-fork=Cancun-single_word_plus_one_byte_memory_extension": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -2229,7 +2229,7 @@ }, "016-fork=Cancun-full_memory_rewrite": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -2368,7 +2368,7 @@ }, "017-fork=Cancun-full_memory_copy": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -2508,7 +2508,7 @@ }, "018-fork=Cancun-full_memory_copy_offset": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -2648,7 +2648,7 @@ }, "019-fork=Cancun-full_memory_clean": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -2779,7 +2779,7 @@ }, "020-fork=Cancun-out_of_bounds_memory_extension": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, diff --git a/tests/execution-spec-tests/cancun/eip5656_mcopy/mcopy_contexts/no_memory_corruption_on_upper_call_stack_levels.json b/tests/execution-spec-tests/cancun/eip5656_mcopy/mcopy_contexts/no_memory_corruption_on_upper_call_stack_levels.json index 88e1645cc05..090d1b291b5 100644 --- a/tests/execution-spec-tests/cancun/eip5656_mcopy/mcopy_contexts/no_memory_corruption_on_upper_call_stack_levels.json +++ b/tests/execution-spec-tests/cancun/eip5656_mcopy/mcopy_contexts/no_memory_corruption_on_upper_call_stack_levels.json @@ -1,7 +1,7 @@ { "000-fork=Cancun-opcode=CALL": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -177,7 +177,7 @@ }, "001-fork=Cancun-opcode=DELEGATECALL": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -352,7 +352,7 @@ }, "002-fork=Cancun-opcode=STATICCALL": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -526,7 +526,7 @@ }, "003-fork=Cancun-opcode=CALLCODE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -701,7 +701,7 @@ }, "004-fork=Cancun-opcode=CREATE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -883,7 +883,7 @@ }, "005-fork=Cancun-opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, diff --git a/tests/execution-spec-tests/cancun/eip5656_mcopy/mcopy_memory_expansion/mcopy_huge_memory_expansion.json b/tests/execution-spec-tests/cancun/eip5656_mcopy/mcopy_memory_expansion/mcopy_huge_memory_expansion.json index 23bc6b7c0dc..c2c6dcfc540 100644 --- a/tests/execution-spec-tests/cancun/eip5656_mcopy/mcopy_memory_expansion/mcopy_huge_memory_expansion.json +++ b/tests/execution-spec-tests/cancun/eip5656_mcopy/mcopy_memory_expansion/mcopy_huge_memory_expansion.json @@ -1,7 +1,7 @@ { "000-fork=Cancun-from_existent_memory-successful=False--max_dest_single_byte_expansion": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -139,7 +139,7 @@ }, "001-fork=Cancun-from_existent_memory-successful=False--max_dest_minus_one_single_byte_expansion": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -277,7 +277,7 @@ }, "002-fork=Cancun-from_existent_memory-successful=False--half_max_dest_single_byte_expansion": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -415,7 +415,7 @@ }, "003-fork=Cancun-from_existent_memory-successful=False--max_src_single_byte_expansion": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -553,7 +553,7 @@ }, "004-fork=Cancun-from_existent_memory-successful=False--max_src_minus_one_single_byte_expansion": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -691,7 +691,7 @@ }, "005-fork=Cancun-from_existent_memory-successful=False--half_max_src_single_byte_expansion": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -829,7 +829,7 @@ }, "006-fork=Cancun-from_existent_memory-successful=False--max_length_expansion": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -967,7 +967,7 @@ }, "007-fork=Cancun-from_existent_memory-successful=False--max_length_minus_one_expansion": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -1105,7 +1105,7 @@ }, "008-fork=Cancun-from_existent_memory-successful=False--half_max_length_expansion": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -1243,7 +1243,7 @@ }, "009-fork=Cancun-from_empty_memory-successful=False--max_dest_single_byte_expansion": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -1381,7 +1381,7 @@ }, "010-fork=Cancun-from_empty_memory-successful=False--max_dest_minus_one_single_byte_expansion": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -1519,7 +1519,7 @@ }, "011-fork=Cancun-from_empty_memory-successful=False--half_max_dest_single_byte_expansion": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -1657,7 +1657,7 @@ }, "012-fork=Cancun-from_empty_memory-successful=False--max_src_single_byte_expansion": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -1795,7 +1795,7 @@ }, "013-fork=Cancun-from_empty_memory-successful=False--max_src_minus_one_single_byte_expansion": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -1933,7 +1933,7 @@ }, "014-fork=Cancun-from_empty_memory-successful=False--half_max_src_single_byte_expansion": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -2071,7 +2071,7 @@ }, "015-fork=Cancun-from_empty_memory-successful=False--max_length_expansion": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -2209,7 +2209,7 @@ }, "016-fork=Cancun-from_empty_memory-successful=False--max_length_minus_one_expansion": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -2347,7 +2347,7 @@ }, "017-fork=Cancun-from_empty_memory-successful=False--half_max_length_expansion": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, diff --git a/tests/execution-spec-tests/cancun/eip5656_mcopy/mcopy_memory_expansion/mcopy_memory_expansion.json b/tests/execution-spec-tests/cancun/eip5656_mcopy/mcopy_memory_expansion/mcopy_memory_expansion.json index a8db8130e37..dfa6f4d3a05 100644 --- a/tests/execution-spec-tests/cancun/eip5656_mcopy/mcopy_memory_expansion/mcopy_memory_expansion.json +++ b/tests/execution-spec-tests/cancun/eip5656_mcopy/mcopy_memory_expansion/mcopy_memory_expansion.json @@ -1,7 +1,7 @@ { "000-fork=Cancun-from_existent_memory-successful=True-single_byte_expansion": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -139,7 +139,7 @@ }, "001-fork=Cancun-from_existent_memory-successful=True-single_byte_expansion_2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -277,7 +277,7 @@ }, "002-fork=Cancun-from_existent_memory-successful=True-single_byte_expansion_word_boundary": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -415,7 +415,7 @@ }, "003-fork=Cancun-from_existent_memory-successful=True-single_byte_expansion_word_boundary_2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -553,7 +553,7 @@ }, "004-fork=Cancun-from_existent_memory-successful=True-multi_word_expansion": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -691,7 +691,7 @@ }, "005-fork=Cancun-from_existent_memory-successful=True-multi_word_expansion_2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -829,7 +829,7 @@ }, "006-fork=Cancun-from_existent_memory-successful=True-zero_length_expansion": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -967,7 +967,7 @@ }, "007-fork=Cancun-from_existent_memory-successful=True-huge_dest_zero_length": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -1105,7 +1105,7 @@ }, "008-fork=Cancun-from_existent_memory-successful=True-huge_src_zero_length": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -1243,7 +1243,7 @@ }, "009-fork=Cancun-from_existent_memory-successful=True-huge_dest_huge_src_zero_length": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -1381,7 +1381,7 @@ }, "010-fork=Cancun-from_existent_memory-successful=False-single_byte_expansion": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -1519,7 +1519,7 @@ }, "011-fork=Cancun-from_existent_memory-successful=False-single_byte_expansion_2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -1657,7 +1657,7 @@ }, "012-fork=Cancun-from_existent_memory-successful=False-single_byte_expansion_word_boundary": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -1795,7 +1795,7 @@ }, "013-fork=Cancun-from_existent_memory-successful=False-single_byte_expansion_word_boundary_2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -1933,7 +1933,7 @@ }, "014-fork=Cancun-from_existent_memory-successful=False-multi_word_expansion": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -2071,7 +2071,7 @@ }, "015-fork=Cancun-from_existent_memory-successful=False-multi_word_expansion_2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -2209,7 +2209,7 @@ }, "016-fork=Cancun-from_existent_memory-successful=False-zero_length_expansion": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -2347,7 +2347,7 @@ }, "017-fork=Cancun-from_existent_memory-successful=False-huge_dest_zero_length": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -2485,7 +2485,7 @@ }, "018-fork=Cancun-from_existent_memory-successful=False-huge_src_zero_length": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -2623,7 +2623,7 @@ }, "019-fork=Cancun-from_existent_memory-successful=False-huge_dest_huge_src_zero_length": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -2761,7 +2761,7 @@ }, "020-fork=Cancun-from_empty_memory-successful=True-single_byte_expansion": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -2899,7 +2899,7 @@ }, "021-fork=Cancun-from_empty_memory-successful=True-single_byte_expansion_2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -3037,7 +3037,7 @@ }, "022-fork=Cancun-from_empty_memory-successful=True-single_byte_expansion_word_boundary": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -3175,7 +3175,7 @@ }, "023-fork=Cancun-from_empty_memory-successful=True-single_byte_expansion_word_boundary_2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -3313,7 +3313,7 @@ }, "024-fork=Cancun-from_empty_memory-successful=True-multi_word_expansion": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -3451,7 +3451,7 @@ }, "025-fork=Cancun-from_empty_memory-successful=True-multi_word_expansion_2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -3589,7 +3589,7 @@ }, "026-fork=Cancun-from_empty_memory-successful=True-zero_length_expansion": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -3727,7 +3727,7 @@ }, "027-fork=Cancun-from_empty_memory-successful=True-huge_dest_zero_length": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -3865,7 +3865,7 @@ }, "028-fork=Cancun-from_empty_memory-successful=True-huge_src_zero_length": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -4003,7 +4003,7 @@ }, "029-fork=Cancun-from_empty_memory-successful=True-huge_dest_huge_src_zero_length": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -4141,7 +4141,7 @@ }, "030-fork=Cancun-from_empty_memory-successful=False-single_byte_expansion": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -4279,7 +4279,7 @@ }, "031-fork=Cancun-from_empty_memory-successful=False-single_byte_expansion_2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -4417,7 +4417,7 @@ }, "032-fork=Cancun-from_empty_memory-successful=False-single_byte_expansion_word_boundary": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -4555,7 +4555,7 @@ }, "033-fork=Cancun-from_empty_memory-successful=False-single_byte_expansion_word_boundary_2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -4693,7 +4693,7 @@ }, "034-fork=Cancun-from_empty_memory-successful=False-multi_word_expansion": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -4831,7 +4831,7 @@ }, "035-fork=Cancun-from_empty_memory-successful=False-multi_word_expansion_2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -4969,7 +4969,7 @@ }, "036-fork=Cancun-from_empty_memory-successful=False-zero_length_expansion": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -5107,7 +5107,7 @@ }, "037-fork=Cancun-from_empty_memory-successful=False-huge_dest_zero_length": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -5245,7 +5245,7 @@ }, "038-fork=Cancun-from_empty_memory-successful=False-huge_src_zero_length": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -5383,7 +5383,7 @@ }, "039-fork=Cancun-from_empty_memory-successful=False-huge_dest_huge_src_zero_length": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, diff --git a/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/create_selfdestruct_same_tx.json b/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/create_selfdestruct_same_tx.json index eb3c9cd65c6..57cdb743f12 100644 --- a/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/create_selfdestruct_same_tx.json +++ b/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/create_selfdestruct_same_tx.json @@ -1,7 +1,7 @@ { "000-fork=Shanghai-selfdestruct_contract_initial_balance=0-single_call-create_opcode=CREATE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -150,7 +150,7 @@ }, "001-fork=Shanghai-selfdestruct_contract_initial_balance=0-single_call-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -299,7 +299,7 @@ }, "002-fork=Shanghai-selfdestruct_contract_initial_balance=0-single_call_self-create_opcode=CREATE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -432,7 +432,7 @@ }, "003-fork=Shanghai-selfdestruct_contract_initial_balance=0-single_call_self-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -581,7 +581,7 @@ }, "004-fork=Shanghai-selfdestruct_contract_initial_balance=0-multiple_calls_single_sendall_recipient-create_opcode=CREATE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -739,7 +739,7 @@ }, "005-fork=Shanghai-selfdestruct_contract_initial_balance=0-multiple_calls_single_sendall_recipient-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -897,7 +897,7 @@ }, "006-fork=Shanghai-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients-create_opcode=CREATE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -1087,7 +1087,7 @@ }, "007-fork=Shanghai-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -1277,7 +1277,7 @@ }, "008-fork=Shanghai-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients_including_self-create_opcode=CREATE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -1451,7 +1451,7 @@ }, "009-fork=Shanghai-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients_including_self-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -1641,7 +1641,7 @@ }, "010-fork=Shanghai-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients_including_self_different_order-create_opcode=CREATE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -1815,7 +1815,7 @@ }, "011-fork=Shanghai-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients_including_self_different_order-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -2005,7 +2005,7 @@ }, "012-fork=Shanghai-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients_including_self_last-create_opcode=CREATE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -2172,7 +2172,7 @@ }, "013-fork=Shanghai-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients_including_self_last-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -2355,7 +2355,7 @@ }, "014-fork=Shanghai-selfdestruct_contract_initial_balance=100000-single_call-create_opcode=CREATE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -2510,7 +2510,7 @@ }, "015-fork=Shanghai-selfdestruct_contract_initial_balance=100000-single_call-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -2665,7 +2665,7 @@ }, "016-fork=Shanghai-selfdestruct_contract_initial_balance=100000-single_call_self-create_opcode=CREATE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -2804,7 +2804,7 @@ }, "017-fork=Shanghai-selfdestruct_contract_initial_balance=100000-single_call_self-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -2959,7 +2959,7 @@ }, "018-fork=Shanghai-selfdestruct_contract_initial_balance=100000-multiple_calls_single_sendall_recipient-create_opcode=CREATE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -3123,7 +3123,7 @@ }, "019-fork=Shanghai-selfdestruct_contract_initial_balance=100000-multiple_calls_single_sendall_recipient-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -3287,7 +3287,7 @@ }, "020-fork=Shanghai-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients-create_opcode=CREATE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -3483,7 +3483,7 @@ }, "021-fork=Shanghai-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -3679,7 +3679,7 @@ }, "022-fork=Shanghai-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients_including_self-create_opcode=CREATE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -3859,7 +3859,7 @@ }, "023-fork=Shanghai-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients_including_self-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -4055,7 +4055,7 @@ }, "024-fork=Shanghai-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients_including_self_different_order-create_opcode=CREATE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -4235,7 +4235,7 @@ }, "025-fork=Shanghai-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients_including_self_different_order-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -4431,7 +4431,7 @@ }, "026-fork=Shanghai-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients_including_self_last-create_opcode=CREATE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -4604,7 +4604,7 @@ }, "027-fork=Shanghai-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients_including_self_last-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -4793,7 +4793,7 @@ }, "028-fork=Cancun-selfdestruct_contract_initial_balance=0-single_call-create_opcode=CREATE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -4962,7 +4962,7 @@ }, "029-fork=Cancun-selfdestruct_contract_initial_balance=0-single_call-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -5131,7 +5131,7 @@ }, "030-fork=Cancun-selfdestruct_contract_initial_balance=0-single_call_self-create_opcode=CREATE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -5284,7 +5284,7 @@ }, "031-fork=Cancun-selfdestruct_contract_initial_balance=0-single_call_self-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -5453,7 +5453,7 @@ }, "032-fork=Cancun-selfdestruct_contract_initial_balance=0-multiple_calls_single_sendall_recipient-create_opcode=CREATE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -5631,7 +5631,7 @@ }, "033-fork=Cancun-selfdestruct_contract_initial_balance=0-multiple_calls_single_sendall_recipient-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -5809,7 +5809,7 @@ }, "034-fork=Cancun-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients-create_opcode=CREATE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -6019,7 +6019,7 @@ }, "035-fork=Cancun-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -6229,7 +6229,7 @@ }, "036-fork=Cancun-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients_including_self-create_opcode=CREATE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -6423,7 +6423,7 @@ }, "037-fork=Cancun-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients_including_self-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -6633,7 +6633,7 @@ }, "038-fork=Cancun-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients_including_self_different_order-create_opcode=CREATE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -6827,7 +6827,7 @@ }, "039-fork=Cancun-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients_including_self_different_order-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -7037,7 +7037,7 @@ }, "040-fork=Cancun-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients_including_self_last-create_opcode=CREATE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -7224,7 +7224,7 @@ }, "041-fork=Cancun-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients_including_self_last-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -7427,7 +7427,7 @@ }, "042-fork=Cancun-selfdestruct_contract_initial_balance=100000-single_call-create_opcode=CREATE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -7602,7 +7602,7 @@ }, "043-fork=Cancun-selfdestruct_contract_initial_balance=100000-single_call-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -7777,7 +7777,7 @@ }, "044-fork=Cancun-selfdestruct_contract_initial_balance=100000-single_call_self-create_opcode=CREATE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -7936,7 +7936,7 @@ }, "045-fork=Cancun-selfdestruct_contract_initial_balance=100000-single_call_self-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -8111,7 +8111,7 @@ }, "046-fork=Cancun-selfdestruct_contract_initial_balance=100000-multiple_calls_single_sendall_recipient-create_opcode=CREATE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -8295,7 +8295,7 @@ }, "047-fork=Cancun-selfdestruct_contract_initial_balance=100000-multiple_calls_single_sendall_recipient-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -8479,7 +8479,7 @@ }, "048-fork=Cancun-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients-create_opcode=CREATE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -8695,7 +8695,7 @@ }, "049-fork=Cancun-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -8911,7 +8911,7 @@ }, "050-fork=Cancun-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients_including_self-create_opcode=CREATE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -9111,7 +9111,7 @@ }, "051-fork=Cancun-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients_including_self-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -9327,7 +9327,7 @@ }, "052-fork=Cancun-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients_including_self_different_order-create_opcode=CREATE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -9527,7 +9527,7 @@ }, "053-fork=Cancun-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients_including_self_different_order-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -9743,7 +9743,7 @@ }, "054-fork=Cancun-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients_including_self_last-create_opcode=CREATE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -9936,7 +9936,7 @@ }, "055-fork=Cancun-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients_including_self_last-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, diff --git a/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/delegatecall_from_new_contract_to_pre_existing_contract.json b/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/delegatecall_from_new_contract_to_pre_existing_contract.json index 1db62240272..af8e531bc50 100644 --- a/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/delegatecall_from_new_contract_to_pre_existing_contract.json +++ b/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/delegatecall_from_new_contract_to_pre_existing_contract.json @@ -1,7 +1,7 @@ { "000-fork=Shanghai-create_opcode=CREATE-selfdestruct_contract_initial_balance=0-call_times=1-delegatecall": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -150,7 +150,7 @@ }, "001-fork=Shanghai-create_opcode=CREATE-selfdestruct_contract_initial_balance=0-call_times=1-callcode": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -299,7 +299,7 @@ }, "002-fork=Shanghai-create_opcode=CREATE-selfdestruct_contract_initial_balance=1-call_times=1-delegatecall": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -454,7 +454,7 @@ }, "003-fork=Shanghai-create_opcode=CREATE-selfdestruct_contract_initial_balance=1-call_times=1-callcode": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -609,7 +609,7 @@ }, "004-fork=Cancun-create_opcode=CREATE-selfdestruct_contract_initial_balance=0-call_times=1-delegatecall": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -778,7 +778,7 @@ }, "005-fork=Cancun-create_opcode=CREATE-selfdestruct_contract_initial_balance=0-call_times=1-callcode": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -947,7 +947,7 @@ }, "006-fork=Cancun-create_opcode=CREATE-selfdestruct_contract_initial_balance=1-call_times=1-delegatecall": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -1122,7 +1122,7 @@ }, "007-fork=Cancun-create_opcode=CREATE-selfdestruct_contract_initial_balance=1-call_times=1-callcode": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, diff --git a/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/delegatecall_from_pre_existing_contract_to_new_contract.json b/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/delegatecall_from_pre_existing_contract_to_new_contract.json index ad6190eebde..51047478ec9 100644 --- a/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/delegatecall_from_pre_existing_contract_to_new_contract.json +++ b/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/delegatecall_from_pre_existing_contract_to_new_contract.json @@ -1,7 +1,7 @@ { "000-fork=Shanghai-selfdestruct_contract_initial_balance=0-call_times=1-call_opcode=DELEGATECALL-create_opcode=CREATE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -162,7 +162,7 @@ }, "001-fork=Shanghai-selfdestruct_contract_initial_balance=0-call_times=1-call_opcode=DELEGATECALL-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -323,7 +323,7 @@ }, "002-fork=Shanghai-selfdestruct_contract_initial_balance=0-call_times=1-call_opcode=CALLCODE-create_opcode=CREATE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -484,7 +484,7 @@ }, "003-fork=Shanghai-selfdestruct_contract_initial_balance=0-call_times=1-call_opcode=CALLCODE-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -645,7 +645,7 @@ }, "004-fork=Shanghai-selfdestruct_contract_initial_balance=1-call_times=1-call_opcode=DELEGATECALL-create_opcode=CREATE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -812,7 +812,7 @@ }, "005-fork=Shanghai-selfdestruct_contract_initial_balance=1-call_times=1-call_opcode=DELEGATECALL-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -979,7 +979,7 @@ }, "006-fork=Shanghai-selfdestruct_contract_initial_balance=1-call_times=1-call_opcode=CALLCODE-create_opcode=CREATE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -1146,7 +1146,7 @@ }, "007-fork=Shanghai-selfdestruct_contract_initial_balance=1-call_times=1-call_opcode=CALLCODE-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -1313,7 +1313,7 @@ }, "008-fork=Cancun-selfdestruct_contract_initial_balance=0-call_times=1-call_opcode=DELEGATECALL-create_opcode=CREATE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -1502,7 +1502,7 @@ }, "009-fork=Cancun-selfdestruct_contract_initial_balance=0-call_times=1-call_opcode=DELEGATECALL-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -1691,7 +1691,7 @@ }, "010-fork=Cancun-selfdestruct_contract_initial_balance=0-call_times=1-call_opcode=CALLCODE-create_opcode=CREATE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -1880,7 +1880,7 @@ }, "011-fork=Cancun-selfdestruct_contract_initial_balance=0-call_times=1-call_opcode=CALLCODE-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -2069,7 +2069,7 @@ }, "012-fork=Cancun-selfdestruct_contract_initial_balance=1-call_times=1-call_opcode=DELEGATECALL-create_opcode=CREATE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -2264,7 +2264,7 @@ }, "013-fork=Cancun-selfdestruct_contract_initial_balance=1-call_times=1-call_opcode=DELEGATECALL-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -2459,7 +2459,7 @@ }, "014-fork=Cancun-selfdestruct_contract_initial_balance=1-call_times=1-call_opcode=CALLCODE-create_opcode=CREATE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -2654,7 +2654,7 @@ }, "015-fork=Cancun-selfdestruct_contract_initial_balance=1-call_times=1-call_opcode=CALLCODE-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, diff --git a/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/recreate_self_destructed_contract_different_txs.json b/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/recreate_self_destructed_contract_different_txs.json index c39342b6bb2..97231a72de9 100644 --- a/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/recreate_self_destructed_contract_different_txs.json +++ b/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/recreate_self_destructed_contract_different_txs.json @@ -1,7 +1,7 @@ { "000-fork=Shanghai-call_times=1-recreate_times=1-selfdestruct_contract_initial_balance=0-selfdestruct_other_address-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -167,7 +167,7 @@ }, "001-fork=Shanghai-call_times=1-recreate_times=1-selfdestruct_contract_initial_balance=0-selfdestruct_to_self-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -317,7 +317,7 @@ }, "002-fork=Shanghai-call_times=1-recreate_times=1-selfdestruct_contract_initial_balance=100000-selfdestruct_other_address-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -489,7 +489,7 @@ }, "003-fork=Shanghai-call_times=1-recreate_times=1-selfdestruct_contract_initial_balance=100000-selfdestruct_to_self-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -661,7 +661,7 @@ }, "004-fork=Cancun-call_times=1-recreate_times=1-selfdestruct_contract_initial_balance=0-selfdestruct_other_address-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -847,7 +847,7 @@ }, "005-fork=Cancun-call_times=1-recreate_times=1-selfdestruct_contract_initial_balance=0-selfdestruct_to_self-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -1033,7 +1033,7 @@ }, "006-fork=Cancun-call_times=1-recreate_times=1-selfdestruct_contract_initial_balance=100000-selfdestruct_other_address-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -1225,7 +1225,7 @@ }, "007-fork=Cancun-call_times=1-recreate_times=1-selfdestruct_contract_initial_balance=100000-selfdestruct_to_self-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, diff --git a/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/self_destructing_initcode.json b/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/self_destructing_initcode.json index 99025dddcbf..6fad5ce6bdb 100644 --- a/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/self_destructing_initcode.json +++ b/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/self_destructing_initcode.json @@ -1,7 +1,7 @@ { "000-fork=Shanghai--selfdestruct_contract_initial_balance=0-call_times=0-create_opcode=CREATE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -146,7 +146,7 @@ }, "001-fork=Shanghai--selfdestruct_contract_initial_balance=0-call_times=0-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -291,7 +291,7 @@ }, "002-fork=Shanghai--selfdestruct_contract_initial_balance=0-call_times=1-create_opcode=CREATE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -437,7 +437,7 @@ }, "003-fork=Shanghai--selfdestruct_contract_initial_balance=0-call_times=1-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -583,7 +583,7 @@ }, "004-fork=Shanghai--selfdestruct_contract_initial_balance=100000-call_times=0-create_opcode=CREATE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -734,7 +734,7 @@ }, "005-fork=Shanghai--selfdestruct_contract_initial_balance=100000-call_times=0-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -885,7 +885,7 @@ }, "006-fork=Shanghai--selfdestruct_contract_initial_balance=100000-call_times=1-create_opcode=CREATE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -1037,7 +1037,7 @@ }, "007-fork=Shanghai--selfdestruct_contract_initial_balance=100000-call_times=1-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -1189,7 +1189,7 @@ }, "008-fork=Cancun--selfdestruct_contract_initial_balance=0-call_times=0-create_opcode=CREATE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -1354,7 +1354,7 @@ }, "009-fork=Cancun--selfdestruct_contract_initial_balance=0-call_times=0-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -1519,7 +1519,7 @@ }, "010-fork=Cancun--selfdestruct_contract_initial_balance=0-call_times=1-create_opcode=CREATE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -1685,7 +1685,7 @@ }, "011-fork=Cancun--selfdestruct_contract_initial_balance=0-call_times=1-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -1851,7 +1851,7 @@ }, "012-fork=Cancun--selfdestruct_contract_initial_balance=100000-call_times=0-create_opcode=CREATE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -2022,7 +2022,7 @@ }, "013-fork=Cancun--selfdestruct_contract_initial_balance=100000-call_times=0-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -2193,7 +2193,7 @@ }, "014-fork=Cancun--selfdestruct_contract_initial_balance=100000-call_times=1-create_opcode=CREATE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -2365,7 +2365,7 @@ }, "015-fork=Cancun--selfdestruct_contract_initial_balance=100000-call_times=1-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, diff --git a/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/self_destructing_initcode_create_tx.json b/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/self_destructing_initcode_create_tx.json index 5a302e4f52d..181930e06e5 100644 --- a/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/self_destructing_initcode_create_tx.json +++ b/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/self_destructing_initcode_create_tx.json @@ -1,7 +1,7 @@ { "000-fork=Shanghai--selfdestruct_contract_address=0x6295ee1b4f6dd65047762f924ecd367c17eabf8f-selfdestruct_contract_initial_balance=0-tx_value=0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -137,7 +137,7 @@ }, "001-fork=Shanghai--selfdestruct_contract_address=0x6295ee1b4f6dd65047762f924ecd367c17eabf8f-selfdestruct_contract_initial_balance=0-tx_value=100000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -273,7 +273,7 @@ }, "002-fork=Shanghai--selfdestruct_contract_address=0x6295ee1b4f6dd65047762f924ecd367c17eabf8f-selfdestruct_contract_initial_balance=100000-tx_value=0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -415,7 +415,7 @@ }, "003-fork=Shanghai--selfdestruct_contract_address=0x6295ee1b4f6dd65047762f924ecd367c17eabf8f-selfdestruct_contract_initial_balance=100000-tx_value=100000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -557,7 +557,7 @@ }, "004-fork=Cancun--selfdestruct_contract_address=0x6295ee1b4f6dd65047762f924ecd367c17eabf8f-selfdestruct_contract_initial_balance=0-tx_value=0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -713,7 +713,7 @@ }, "005-fork=Cancun--selfdestruct_contract_address=0x6295ee1b4f6dd65047762f924ecd367c17eabf8f-selfdestruct_contract_initial_balance=0-tx_value=100000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -869,7 +869,7 @@ }, "006-fork=Cancun--selfdestruct_contract_address=0x6295ee1b4f6dd65047762f924ecd367c17eabf8f-selfdestruct_contract_initial_balance=100000-tx_value=0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -1031,7 +1031,7 @@ }, "007-fork=Cancun--selfdestruct_contract_address=0x6295ee1b4f6dd65047762f924ecd367c17eabf8f-selfdestruct_contract_initial_balance=100000-tx_value=100000": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, diff --git a/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/selfdestruct_created_same_block_different_tx.json b/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/selfdestruct_created_same_block_different_tx.json index 11e98856128..aba8ef454f1 100644 --- a/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/selfdestruct_created_same_block_different_tx.json +++ b/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/selfdestruct_created_same_block_different_tx.json @@ -1,7 +1,7 @@ { "000-fork=Shanghai-selfdestruct_contract_address=0x6295ee1b4f6dd65047762f924ecd367c17eabf8f-entry_code_address=0xec0e71ad0a90ffe1909d27dac207f7680abba42d-call_times=1-selfdestruct_contract_initial_balance=0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -162,7 +162,7 @@ }, "001-fork=Shanghai-selfdestruct_contract_address=0x6295ee1b4f6dd65047762f924ecd367c17eabf8f-entry_code_address=0xec0e71ad0a90ffe1909d27dac207f7680abba42d-call_times=1-selfdestruct_contract_initial_balance=1": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -329,7 +329,7 @@ }, "002-fork=Shanghai-selfdestruct_contract_address=0x6295ee1b4f6dd65047762f924ecd367c17eabf8f-entry_code_address=0xec0e71ad0a90ffe1909d27dac207f7680abba42d-call_times=10-selfdestruct_contract_initial_balance=0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -499,7 +499,7 @@ }, "003-fork=Shanghai-selfdestruct_contract_address=0x6295ee1b4f6dd65047762f924ecd367c17eabf8f-entry_code_address=0xec0e71ad0a90ffe1909d27dac207f7680abba42d-call_times=10-selfdestruct_contract_initial_balance=1": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -675,7 +675,7 @@ }, "004-fork=Cancun-selfdestruct_contract_address=0x6295ee1b4f6dd65047762f924ecd367c17eabf8f-entry_code_address=0xec0e71ad0a90ffe1909d27dac207f7680abba42d-call_times=1-selfdestruct_contract_initial_balance=0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -864,7 +864,7 @@ }, "005-fork=Cancun-selfdestruct_contract_address=0x6295ee1b4f6dd65047762f924ecd367c17eabf8f-entry_code_address=0xec0e71ad0a90ffe1909d27dac207f7680abba42d-call_times=1-selfdestruct_contract_initial_balance=1": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -1059,7 +1059,7 @@ }, "006-fork=Cancun-selfdestruct_contract_address=0x6295ee1b4f6dd65047762f924ecd367c17eabf8f-entry_code_address=0xec0e71ad0a90ffe1909d27dac207f7680abba42d-call_times=10-selfdestruct_contract_initial_balance=0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -1257,7 +1257,7 @@ }, "007-fork=Cancun-selfdestruct_contract_address=0x6295ee1b4f6dd65047762f924ecd367c17eabf8f-entry_code_address=0xec0e71ad0a90ffe1909d27dac207f7680abba42d-call_times=10-selfdestruct_contract_initial_balance=1": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, diff --git a/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/selfdestruct_pre_existing.json b/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/selfdestruct_pre_existing.json index a2eb6dd76d1..9bfdf395bb9 100644 --- a/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/selfdestruct_pre_existing.json +++ b/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/selfdestruct_pre_existing.json @@ -1,7 +1,7 @@ { "000-fork=Shanghai-pre_existing-selfdestruct_contract_initial_balance=0-single_call": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -141,7 +141,7 @@ }, "001-fork=Shanghai-pre_existing-selfdestruct_contract_initial_balance=0-single_call_self_sendall_recipient": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -265,7 +265,7 @@ }, "002-fork=Shanghai-pre_existing-selfdestruct_contract_initial_balance=0-multiple_calls_single_sendall_recipient": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -414,7 +414,7 @@ }, "003-fork=Shanghai-pre_existing-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -595,7 +595,7 @@ }, "004-fork=Shanghai-pre_existing-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients_including_self": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -760,7 +760,7 @@ }, "005-fork=Shanghai-pre_existing-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients_including_self_different_order": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -925,7 +925,7 @@ }, "006-fork=Shanghai-pre_existing-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients_including_self_last": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -1083,7 +1083,7 @@ }, "007-fork=Shanghai-pre_existing-selfdestruct_contract_initial_balance=100000-single_call": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -1223,7 +1223,7 @@ }, "008-fork=Shanghai-pre_existing-selfdestruct_contract_initial_balance=100000-single_call_self_sendall_recipient": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -1347,7 +1347,7 @@ }, "009-fork=Shanghai-pre_existing-selfdestruct_contract_initial_balance=100000-multiple_calls_single_sendall_recipient": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -1496,7 +1496,7 @@ }, "010-fork=Shanghai-pre_existing-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -1677,7 +1677,7 @@ }, "011-fork=Shanghai-pre_existing-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients_including_self": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -1842,7 +1842,7 @@ }, "012-fork=Shanghai-pre_existing-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients_including_self_different_order": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -2007,7 +2007,7 @@ }, "013-fork=Shanghai-pre_existing-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients_including_self_last": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -2165,7 +2165,7 @@ }, "014-fork=Cancun-pre_existing-selfdestruct_contract_initial_balance=0-single_call": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -2333,7 +2333,7 @@ }, "015-fork=Cancun-pre_existing-selfdestruct_contract_initial_balance=0-single_call_self_sendall_recipient": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -2485,7 +2485,7 @@ }, "016-fork=Cancun-pre_existing-selfdestruct_contract_initial_balance=0-multiple_calls_single_sendall_recipient": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -2662,7 +2662,7 @@ }, "017-fork=Cancun-pre_existing-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -2871,7 +2871,7 @@ }, "018-fork=Cancun-pre_existing-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients_including_self": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -3067,7 +3067,7 @@ }, "019-fork=Cancun-pre_existing-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients_including_self_different_order": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -3263,7 +3263,7 @@ }, "020-fork=Cancun-pre_existing-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients_including_self_last": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -3450,7 +3450,7 @@ }, "021-fork=Cancun-pre_existing-selfdestruct_contract_initial_balance=100000-single_call": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -3618,7 +3618,7 @@ }, "022-fork=Cancun-pre_existing-selfdestruct_contract_initial_balance=100000-single_call_self_sendall_recipient": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -3771,7 +3771,7 @@ }, "023-fork=Cancun-pre_existing-selfdestruct_contract_initial_balance=100000-multiple_calls_single_sendall_recipient": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -3948,7 +3948,7 @@ }, "024-fork=Cancun-pre_existing-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -4157,7 +4157,7 @@ }, "025-fork=Cancun-pre_existing-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients_including_self": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -4354,7 +4354,7 @@ }, "026-fork=Cancun-pre_existing-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients_including_self_different_order": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -4550,7 +4550,7 @@ }, "027-fork=Cancun-pre_existing-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients_including_self_last": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, diff --git a/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct_revert/selfdestruct_created_in_same_tx_with_revert.json b/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct_revert/selfdestruct_created_in_same_tx_with_revert.json index 112b60f918f..ddbfe91303c 100644 --- a/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct_revert/selfdestruct_created_in_same_tx_with_revert.json +++ b/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct_revert/selfdestruct_created_in_same_tx_with_revert.json @@ -1,7 +1,7 @@ { "000-fork=Cancun-no_outer_selfdestruct": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -159,7 +159,7 @@ }, "001-fork=Cancun-outer_selfdestruct_before_inner_call": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -315,7 +315,7 @@ }, "002-fork=Cancun-outer_selfdestruct_after_inner_call": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, diff --git a/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct_revert/selfdestruct_not_created_in_same_tx_with_revert.json b/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct_revert/selfdestruct_not_created_in_same_tx_with_revert.json index f3ce73fba40..916b5d1fcd9 100644 --- a/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct_revert/selfdestruct_not_created_in_same_tx_with_revert.json +++ b/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct_revert/selfdestruct_not_created_in_same_tx_with_revert.json @@ -1,7 +1,7 @@ { "000-fork=Cancun-no_outer_selfdestruct": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -151,7 +151,7 @@ }, "001-fork=Cancun-outer_selfdestruct_before_inner_call": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, @@ -308,7 +308,7 @@ }, "002-fork=Cancun-outer_selfdestruct_after_inner_call": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, diff --git a/tests/execution-spec-tests/cancun/eip7516_blobgasfee/blobgasfee_opcode/blobbasefee_before_fork.json b/tests/execution-spec-tests/cancun/eip7516_blobgasfee/blobgasfee_opcode/blobbasefee_before_fork.json index dd7b0a02149..b86805d3316 100644 --- a/tests/execution-spec-tests/cancun/eip7516_blobgasfee/blobgasfee_opcode/blobbasefee_before_fork.json +++ b/tests/execution-spec-tests/cancun/eip7516_blobgasfee/blobgasfee_opcode/blobbasefee_before_fork.json @@ -1,7 +1,7 @@ { "000-fork=ShanghaiToCancunAtTime15k": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-7516.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, diff --git a/tests/execution-spec-tests/cancun/eip7516_blobgasfee/blobgasfee_opcode/blobbasefee_out_of_gas.json b/tests/execution-spec-tests/cancun/eip7516_blobgasfee/blobgasfee_opcode/blobbasefee_out_of_gas.json index ea5ca3dde95..8b8fa57636a 100644 --- a/tests/execution-spec-tests/cancun/eip7516_blobgasfee/blobgasfee_opcode/blobbasefee_out_of_gas.json +++ b/tests/execution-spec-tests/cancun/eip7516_blobgasfee/blobgasfee_opcode/blobbasefee_out_of_gas.json @@ -1,7 +1,7 @@ { "000-fork=Cancun-enough_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-7516.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -143,7 +143,7 @@ }, "001-fork=Cancun-out_of_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-7516.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, diff --git a/tests/execution-spec-tests/cancun/eip7516_blobgasfee/blobgasfee_opcode/blobbasefee_stack_overflow.json b/tests/execution-spec-tests/cancun/eip7516_blobgasfee/blobgasfee_opcode/blobbasefee_stack_overflow.json index e54dcda312a..1196db79c2a 100644 --- a/tests/execution-spec-tests/cancun/eip7516_blobgasfee/blobgasfee_opcode/blobbasefee_stack_overflow.json +++ b/tests/execution-spec-tests/cancun/eip7516_blobgasfee/blobgasfee_opcode/blobbasefee_stack_overflow.json @@ -1,7 +1,7 @@ { "000-fork=Cancun-no_stack_overflow": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-7516.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, @@ -143,7 +143,7 @@ }, "001-fork=Cancun-stack_overflow": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-7516.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, diff --git a/tests/execution-spec-tests/frontier/opcodes/dup/dup.json b/tests/execution-spec-tests/frontier/opcodes/dup/dup.json index 6792f363f75..5d43be2bcaa 100644 --- a/tests/execution-spec-tests/frontier/opcodes/dup/dup.json +++ b/tests/execution-spec-tests/frontier/opcodes/dup/dup.json @@ -1,7 +1,7 @@ { "000-fork=Frontier": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926" + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019" }, "network": "Frontier", "genesisRLP": "0xf901fdf901f8a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03935ad4402a7193934b0272eb9d0bc33f315ba5cef2a8717fd866e546a055f27a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0", @@ -780,7 +780,7 @@ }, "001-fork=Homestead": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926" + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019" }, "network": "Homestead", "genesisRLP": "0xf901fdf901f8a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03935ad4402a7193934b0272eb9d0bc33f315ba5cef2a8717fd866e546a055f27a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0", @@ -1559,7 +1559,7 @@ }, "002-fork=Byzantium": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926" + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019" }, "network": "Byzantium", "genesisRLP": "0xf901fdf901f8a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03935ad4402a7193934b0272eb9d0bc33f315ba5cef2a8717fd866e546a055f27a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0", @@ -2338,7 +2338,7 @@ }, "003-fork=Constantinople": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926" + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019" }, "network": "Constantinople", "genesisRLP": "0xf901fdf901f8a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03935ad4402a7193934b0272eb9d0bc33f315ba5cef2a8717fd866e546a055f27a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0", @@ -3117,7 +3117,7 @@ }, "004-fork=ConstantinopleFix": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926" + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019" }, "network": "ConstantinopleFix", "genesisRLP": "0xf901fdf901f8a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03935ad4402a7193934b0272eb9d0bc33f315ba5cef2a8717fd866e546a055f27a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0", @@ -3896,7 +3896,7 @@ }, "005-fork=Istanbul": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926" + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019" }, "network": "Istanbul", "genesisRLP": "0xf901fdf901f8a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03935ad4402a7193934b0272eb9d0bc33f315ba5cef2a8717fd866e546a055f27a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0", @@ -4675,7 +4675,7 @@ }, "006-fork=Berlin": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926" + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019" }, "network": "Berlin", "genesisRLP": "0xf901fdf901f8a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03935ad4402a7193934b0272eb9d0bc33f315ba5cef2a8717fd866e546a055f27a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0", @@ -5454,7 +5454,7 @@ }, "007-fork=London": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926" + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019" }, "network": "London", "genesisRLP": "0xf901fef901f9a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03935ad4402a7193934b0272eb9d0bc33f315ba5cef2a8717fd866e546a055f27a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007c0c0", @@ -6235,7 +6235,7 @@ }, "008-fork=Merge": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926" + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019" }, "network": "Merge", "genesisRLP": "0xf901fbf901f6a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03935ad4402a7193934b0272eb9d0bc33f315ba5cef2a8717fd866e546a055f27a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007c0c0", @@ -7016,7 +7016,7 @@ }, "009-fork=Shanghai": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926" + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019" }, "network": "Shanghai", "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03935ad4402a7193934b0272eb9d0bc33f315ba5cef2a8717fd866e546a055f27a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", @@ -7800,7 +7800,7 @@ }, "010-fork=Cancun": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926" + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019" }, "network": "Cancun", "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0d1412238a97757a9c28f42e93030c66a66a4659dbfb40ffc74cabcfa17b3bf7fa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", diff --git a/tests/execution-spec-tests/homestead/yul/yul_example/yul.json b/tests/execution-spec-tests/homestead/yul/yul_example/yul.json index e637485d3ac..3f91b1d257c 100644 --- a/tests/execution-spec-tests/homestead/yul/yul_example/yul.json +++ b/tests/execution-spec-tests/homestead/yul/yul_example/yul.json @@ -1,7 +1,7 @@ { "000-fork=Homestead": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926" + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019" }, "network": "Homestead", "genesisRLP": "0xf901fdf901f8a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a05c847cd5a23c01627df4f68be88b99e47576f53d335f2729cbcb0d9d7f47c99ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0", @@ -104,7 +104,7 @@ }, "001-fork=Byzantium": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926" + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019" }, "network": "Byzantium", "genesisRLP": "0xf901fdf901f8a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0013f3cadae6118b3305b8cf40e92ea44d99f04b3d8dca08e433c67d64edd8a4aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0", @@ -207,7 +207,7 @@ }, "002-fork=Constantinople": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926" + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019" }, "network": "Constantinople", "genesisRLP": "0xf901fdf901f8a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0013f3cadae6118b3305b8cf40e92ea44d99f04b3d8dca08e433c67d64edd8a4aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0", @@ -310,7 +310,7 @@ }, "003-fork=ConstantinopleFix": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926" + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019" }, "network": "ConstantinopleFix", "genesisRLP": "0xf901fdf901f8a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0013f3cadae6118b3305b8cf40e92ea44d99f04b3d8dca08e433c67d64edd8a4aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0", @@ -413,7 +413,7 @@ }, "004-fork=Istanbul": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926" + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019" }, "network": "Istanbul", "genesisRLP": "0xf901fdf901f8a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0013f3cadae6118b3305b8cf40e92ea44d99f04b3d8dca08e433c67d64edd8a4aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0", @@ -516,7 +516,7 @@ }, "005-fork=Berlin": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926" + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019" }, "network": "Berlin", "genesisRLP": "0xf901fdf901f8a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0013f3cadae6118b3305b8cf40e92ea44d99f04b3d8dca08e433c67d64edd8a4aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0", @@ -619,7 +619,7 @@ }, "006-fork=London": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926" + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019" }, "network": "London", "genesisRLP": "0xf901fef901f9a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0013f3cadae6118b3305b8cf40e92ea44d99f04b3d8dca08e433c67d64edd8a4aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007c0c0", @@ -724,7 +724,7 @@ }, "007-fork=Merge": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926" + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019" }, "network": "Merge", "genesisRLP": "0xf901fbf901f6a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0013f3cadae6118b3305b8cf40e92ea44d99f04b3d8dca08e433c67d64edd8a4aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007c0c0", @@ -829,7 +829,7 @@ }, "008-fork=Shanghai": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926" + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019" }, "network": "Shanghai", "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0ff452e49ef88af4cdb86fe07a6eb39679b60321ae85bce598022aee4653e9abca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", @@ -937,7 +937,7 @@ }, "009-fork=Cancun": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926" + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019" }, "network": "Cancun", "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a02921dffe2be2c40e5952e3211a830062db74456f5abe11fe37b061805fa41989a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", diff --git a/tests/execution-spec-tests/info.txt b/tests/execution-spec-tests/info.txt index 5d35b311a9d..393a4178eb5 100644 --- a/tests/execution-spec-tests/info.txt +++ b/tests/execution-spec-tests/info.txt @@ -1,3 +1,3 @@ -ref: refs/tags/v1.0.5 -commit: 228f40db3f2beadd62c79395fc60dbd57d204826 -build: 2023-09-26T14:07:31Z +ref: refs/tags/v1.0.6 +commit: 4871503a50f36b96cd3b60342d2c355583874f54 +build: 2023-10-19T19:45:09Z diff --git a/tests/execution-spec-tests/istanbul/eip1344_chainid/chainid/chainid.json b/tests/execution-spec-tests/istanbul/eip1344_chainid/chainid/chainid.json index 02ea1484058..6df9369151a 100644 --- a/tests/execution-spec-tests/istanbul/eip1344_chainid/chainid/chainid.json +++ b/tests/execution-spec-tests/istanbul/eip1344_chainid/chainid/chainid.json @@ -1,7 +1,7 @@ { "000-fork=Istanbul": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1344.md", "reference-spec-version": "02e46aebc80e6e5006ab4d2daa41876139f9a9e2" }, @@ -106,7 +106,7 @@ }, "001-fork=Berlin": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1344.md", "reference-spec-version": "02e46aebc80e6e5006ab4d2daa41876139f9a9e2" }, @@ -211,7 +211,7 @@ }, "002-fork=London": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1344.md", "reference-spec-version": "02e46aebc80e6e5006ab4d2daa41876139f9a9e2" }, @@ -318,7 +318,7 @@ }, "003-fork=Merge": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1344.md", "reference-spec-version": "02e46aebc80e6e5006ab4d2daa41876139f9a9e2" }, @@ -425,7 +425,7 @@ }, "004-fork=Shanghai": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1344.md", "reference-spec-version": "02e46aebc80e6e5006ab4d2daa41876139f9a9e2" }, @@ -535,7 +535,7 @@ }, "005-fork=Cancun": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1344.md", "reference-spec-version": "02e46aebc80e6e5006ab4d2daa41876139f9a9e2" }, diff --git a/tests/execution-spec-tests/merge/security/selfdestruct_balance_bug/tx_selfdestruct_balance_bug.json b/tests/execution-spec-tests/merge/security/selfdestruct_balance_bug/tx_selfdestruct_balance_bug.json index 6df38ff7ad0..809e1133e95 100644 --- a/tests/execution-spec-tests/merge/security/selfdestruct_balance_bug/tx_selfdestruct_balance_bug.json +++ b/tests/execution-spec-tests/merge/security/selfdestruct_balance_bug/tx_selfdestruct_balance_bug.json @@ -1,7 +1,7 @@ { "000-fork=Constantinople": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926" + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019" }, "network": "Constantinople", "genesisRLP": "0xf901fdf901f8a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a06a25755ef4ab6363a1476d1c706ce0962900e8177afe7b9dd9974966ef3f3ed5a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0", @@ -191,7 +191,7 @@ }, "001-fork=ConstantinopleFix": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926" + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019" }, "network": "ConstantinopleFix", "genesisRLP": "0xf901fdf901f8a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a06a25755ef4ab6363a1476d1c706ce0962900e8177afe7b9dd9974966ef3f3ed5a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0", @@ -381,7 +381,7 @@ }, "002-fork=Istanbul": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926" + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019" }, "network": "Istanbul", "genesisRLP": "0xf901fdf901f8a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a06a25755ef4ab6363a1476d1c706ce0962900e8177afe7b9dd9974966ef3f3ed5a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0", @@ -571,7 +571,7 @@ }, "003-fork=Berlin": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926" + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019" }, "network": "Berlin", "genesisRLP": "0xf901fdf901f8a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a06a25755ef4ab6363a1476d1c706ce0962900e8177afe7b9dd9974966ef3f3ed5a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0", @@ -761,7 +761,7 @@ }, "004-fork=London": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926" + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019" }, "network": "London", "genesisRLP": "0xf901fef901f9a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a06a25755ef4ab6363a1476d1c706ce0962900e8177afe7b9dd9974966ef3f3ed5a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007c0c0", @@ -953,7 +953,7 @@ }, "005-fork=Merge": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926" + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019" }, "network": "Merge", "genesisRLP": "0xf901fbf901f6a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a06a25755ef4ab6363a1476d1c706ce0962900e8177afe7b9dd9974966ef3f3ed5a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007c0c0", @@ -1145,7 +1145,7 @@ }, "006-fork=Shanghai": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926" + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019" }, "network": "Shanghai", "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a06a25755ef4ab6363a1476d1c706ce0962900e8177afe7b9dd9974966ef3f3ed5a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", @@ -1340,7 +1340,7 @@ }, "007-fork=Cancun": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926" + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019" }, "network": "Cancun", "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0fd47f280027e1fa6684511e8c24de936760313e5daed2eebfb291660fad65046a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", diff --git a/tests/execution-spec-tests/shanghai/eip3651_warm_coinbase/warm_coinbase/warm_coinbase_call_out_of_gas.json b/tests/execution-spec-tests/shanghai/eip3651_warm_coinbase/warm_coinbase/warm_coinbase_call_out_of_gas.json index 98b3e843435..114d1b91075 100644 --- a/tests/execution-spec-tests/shanghai/eip3651_warm_coinbase/warm_coinbase/warm_coinbase_call_out_of_gas.json +++ b/tests/execution-spec-tests/shanghai/eip3651_warm_coinbase/warm_coinbase/warm_coinbase_call_out_of_gas.json @@ -1,7 +1,7 @@ { "000-fork=Shanghai-CALL-sufficient_gas-opcode_call": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" }, @@ -123,7 +123,7 @@ }, "001-fork=Shanghai-CALL-insufficient_gas-opcode_call": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" }, @@ -243,7 +243,7 @@ }, "002-fork=Shanghai-CALLCODE-sufficient_gas-opcode_callcode": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" }, @@ -365,7 +365,7 @@ }, "003-fork=Shanghai-CALLCODE-insufficient_gas-opcode_callcode": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" }, @@ -485,7 +485,7 @@ }, "004-fork=Shanghai-DELEGATECALL-sufficient_gas-opcode_delegatecall": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" }, @@ -607,7 +607,7 @@ }, "005-fork=Shanghai-DELEGATECALL-insufficient_gas-opcode_delegatecall": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" }, @@ -727,7 +727,7 @@ }, "006-fork=Shanghai-STATICCALL-sufficient_gas-opcode_staticcall": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" }, @@ -849,7 +849,7 @@ }, "007-fork=Shanghai-STATICCALL-insufficient_gas-opcode_staticcall": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" }, @@ -969,7 +969,7 @@ }, "008-fork=Cancun-CALL-sufficient_gas-opcode_call": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" }, @@ -1111,7 +1111,7 @@ }, "009-fork=Cancun-CALL-insufficient_gas-opcode_call": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" }, @@ -1251,7 +1251,7 @@ }, "010-fork=Cancun-CALLCODE-sufficient_gas-opcode_callcode": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" }, @@ -1393,7 +1393,7 @@ }, "011-fork=Cancun-CALLCODE-insufficient_gas-opcode_callcode": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" }, @@ -1533,7 +1533,7 @@ }, "012-fork=Cancun-DELEGATECALL-sufficient_gas-opcode_delegatecall": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" }, @@ -1675,7 +1675,7 @@ }, "013-fork=Cancun-DELEGATECALL-insufficient_gas-opcode_delegatecall": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" }, @@ -1815,7 +1815,7 @@ }, "014-fork=Cancun-STATICCALL-sufficient_gas-opcode_staticcall": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" }, @@ -1957,7 +1957,7 @@ }, "015-fork=Cancun-STATICCALL-insufficient_gas-opcode_staticcall": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" }, diff --git a/tests/execution-spec-tests/shanghai/eip3651_warm_coinbase/warm_coinbase/warm_coinbase_gas_usage.json b/tests/execution-spec-tests/shanghai/eip3651_warm_coinbase/warm_coinbase/warm_coinbase_gas_usage.json index 13d9502659e..7a7fe9892a8 100644 --- a/tests/execution-spec-tests/shanghai/eip3651_warm_coinbase/warm_coinbase/warm_coinbase_gas_usage.json +++ b/tests/execution-spec-tests/shanghai/eip3651_warm_coinbase/warm_coinbase/warm_coinbase_gas_usage.json @@ -1,7 +1,7 @@ { "000-fork=Merge-EXTCODESIZE-opcode_extcodesize": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" }, @@ -108,7 +108,7 @@ }, "001-fork=Merge-EXTCODECOPY-opcode_extcodecopy": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" }, @@ -215,7 +215,7 @@ }, "002-fork=Merge-EXTCODEHASH-opcode_extcodehash": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" }, @@ -322,7 +322,7 @@ }, "003-fork=Merge-BALANCE-opcode_balance": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" }, @@ -429,7 +429,7 @@ }, "004-fork=Merge-CALL-opcode_call": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" }, @@ -536,7 +536,7 @@ }, "005-fork=Merge-CALLCODE-opcode_callcode": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" }, @@ -643,7 +643,7 @@ }, "006-fork=Merge-DELEGATECALL-opcode_delegatecall": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" }, @@ -750,7 +750,7 @@ }, "007-fork=Merge-STATICCALL-opcode_staticcall": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" }, @@ -857,7 +857,7 @@ }, "008-fork=Shanghai-EXTCODESIZE-opcode_extcodesize": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" }, @@ -967,7 +967,7 @@ }, "009-fork=Shanghai-EXTCODECOPY-opcode_extcodecopy": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" }, @@ -1077,7 +1077,7 @@ }, "010-fork=Shanghai-EXTCODEHASH-opcode_extcodehash": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" }, @@ -1187,7 +1187,7 @@ }, "011-fork=Shanghai-BALANCE-opcode_balance": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" }, @@ -1297,7 +1297,7 @@ }, "012-fork=Shanghai-CALL-opcode_call": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" }, @@ -1407,7 +1407,7 @@ }, "013-fork=Shanghai-CALLCODE-opcode_callcode": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" }, @@ -1517,7 +1517,7 @@ }, "014-fork=Shanghai-DELEGATECALL-opcode_delegatecall": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" }, @@ -1627,7 +1627,7 @@ }, "015-fork=Shanghai-STATICCALL-opcode_staticcall": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" }, @@ -1737,7 +1737,7 @@ }, "016-fork=Cancun-EXTCODESIZE-opcode_extcodesize": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" }, @@ -1867,7 +1867,7 @@ }, "017-fork=Cancun-EXTCODECOPY-opcode_extcodecopy": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" }, @@ -1997,7 +1997,7 @@ }, "018-fork=Cancun-EXTCODEHASH-opcode_extcodehash": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" }, @@ -2127,7 +2127,7 @@ }, "019-fork=Cancun-BALANCE-opcode_balance": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" }, @@ -2257,7 +2257,7 @@ }, "020-fork=Cancun-CALL-opcode_call": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" }, @@ -2387,7 +2387,7 @@ }, "021-fork=Cancun-CALLCODE-opcode_callcode": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" }, @@ -2517,7 +2517,7 @@ }, "022-fork=Cancun-DELEGATECALL-opcode_delegatecall": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" }, @@ -2647,7 +2647,7 @@ }, "023-fork=Cancun-STATICCALL-opcode_staticcall": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" }, diff --git a/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_before_jumpdest.json b/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_before_jumpdest.json index ccf279130a7..2da9c27ff45 100644 --- a/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_before_jumpdest.json +++ b/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_before_jumpdest.json @@ -1,7 +1,7 @@ { "000-fork=Shanghai-before_jumpdest": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3855.md", "reference-spec-version": "42034250ae8dd4b21fdc6795773893c6f1e74d3a" }, @@ -111,7 +111,7 @@ }, "001-fork=Cancun-before_jumpdest": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3855.md", "reference-spec-version": "42034250ae8dd4b21fdc6795773893c6f1e74d3a" }, diff --git a/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_during_staticcall.json b/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_during_staticcall.json index 71a96b40f49..d99d4e27883 100644 --- a/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_during_staticcall.json +++ b/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_during_staticcall.json @@ -1,7 +1,7 @@ { "000-fork=Shanghai-during_staticcall": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3855.md", "reference-spec-version": "42034250ae8dd4b21fdc6795773893c6f1e74d3a" }, @@ -124,7 +124,7 @@ }, "001-fork=Cancun-during_staticcall": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3855.md", "reference-spec-version": "42034250ae8dd4b21fdc6795773893c6f1e74d3a" }, diff --git a/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_fill_stack.json b/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_fill_stack.json index 0574714a668..ca4d8c1561f 100644 --- a/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_fill_stack.json +++ b/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_fill_stack.json @@ -1,7 +1,7 @@ { "000-fork=Shanghai-fill_stack": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3855.md", "reference-spec-version": "42034250ae8dd4b21fdc6795773893c6f1e74d3a" }, @@ -111,7 +111,7 @@ }, "001-fork=Cancun-fill_stack": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3855.md", "reference-spec-version": "42034250ae8dd4b21fdc6795773893c6f1e74d3a" }, diff --git a/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_gas_cost.json b/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_gas_cost.json index 24a2df0e02e..d3dba7a82f8 100644 --- a/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_gas_cost.json +++ b/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_gas_cost.json @@ -1,7 +1,7 @@ { "000-fork=Shanghai-gas_cost": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3855.md", "reference-spec-version": "42034250ae8dd4b21fdc6795773893c6f1e74d3a" }, @@ -111,7 +111,7 @@ }, "001-fork=Cancun-gas_cost": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3855.md", "reference-spec-version": "42034250ae8dd4b21fdc6795773893c6f1e74d3a" }, diff --git a/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_key_sstore.json b/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_key_sstore.json index d628b4460ae..f5eed875f47 100644 --- a/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_key_sstore.json +++ b/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_key_sstore.json @@ -1,7 +1,7 @@ { "000-fork=Shanghai-key_sstore": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3855.md", "reference-spec-version": "42034250ae8dd4b21fdc6795773893c6f1e74d3a" }, @@ -111,7 +111,7 @@ }, "001-fork=Cancun-key_sstore": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3855.md", "reference-spec-version": "42034250ae8dd4b21fdc6795773893c6f1e74d3a" }, diff --git a/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_stack_overflow.json b/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_stack_overflow.json index a8ca5f6d09a..36a3751b7e6 100644 --- a/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_stack_overflow.json +++ b/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_stack_overflow.json @@ -1,7 +1,7 @@ { "000-fork=Shanghai-stack_overflow": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3855.md", "reference-spec-version": "42034250ae8dd4b21fdc6795773893c6f1e74d3a" }, @@ -109,7 +109,7 @@ }, "001-fork=Cancun-stack_overflow": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3855.md", "reference-spec-version": "42034250ae8dd4b21fdc6795773893c6f1e74d3a" }, diff --git a/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_storage_overwrite.json b/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_storage_overwrite.json index dbf2520b60f..51240d265a2 100644 --- a/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_storage_overwrite.json +++ b/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_storage_overwrite.json @@ -1,7 +1,7 @@ { "000-fork=Shanghai-storage_overwrite": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3855.md", "reference-spec-version": "42034250ae8dd4b21fdc6795773893c6f1e74d3a" }, @@ -114,7 +114,7 @@ }, "001-fork=Cancun-storage_overwrite": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3855.md", "reference-spec-version": "42034250ae8dd4b21fdc6795773893c6f1e74d3a" }, diff --git a/tests/execution-spec-tests/shanghai/eip3860_initcode/initcode/contract_creating_tx.json b/tests/execution-spec-tests/shanghai/eip3860_initcode/initcode/contract_creating_tx.json index 681bfb6fd68..d2416f8621e 100644 --- a/tests/execution-spec-tests/shanghai/eip3860_initcode/initcode/contract_creating_tx.json +++ b/tests/execution-spec-tests/shanghai/eip3860_initcode/initcode/contract_creating_tx.json @@ -1,7 +1,7 @@ { "000-fork=Shanghai-max_size_zeros-max_size_zeros": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -104,7 +104,7 @@ }, "001-fork=Shanghai-max_size_ones-max_size_ones": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -207,7 +207,7 @@ }, "002-fork=Shanghai-over_limit_zeros-over_limit_zeros": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -237,7 +237,46 @@ { "rlp": "0xf9c271f90217a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9c052f9c04f800a839896808080b9c001610001600081600b8239f3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026a0b8ba45e0ef29fa4dae53b530d498e9b320adcd8723772d76b57dfb7f1b640d3da0675ee050b02d95a683235846a39fdc01854f680d98f8723222d339e5a15b30ccc0c0", "expectException": "max initcode size exceeded", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x491311d7aa7813e6f18310a623255517cc0fa32d2415929e0f5e439c56074c29" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x989680", + "to": "", + "value": "0x00", + "data": "0x610001600081600b8239f30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "v": "0x26", + "r": "0xb8ba45e0ef29fa4dae53b530d498e9b320adcd8723772d76b57dfb7f1b640d3d", + "s": "0x675ee050b02d95a683235846a39fdc01854f680d98f8723222d339e5a15b30cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", @@ -261,7 +300,7 @@ }, "003-fork=Shanghai-over_limit_ones-over_limit_ones": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -291,7 +330,46 @@ { "rlp": "0xf9c271f90217a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9c052f9c04f800a839896808080b9c001610001600081600b8239f3000101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010125a0a4a41d0afd04eeddf1225036a39a1a1cb09834fe107f4fadd22675b635bbe6f2a02edec61109e01f9e704e28a0cfa7d9ef53705deee45a57b3df66bb9ccdd2f18ec0c0", "expectException": "max initcode size exceeded", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x491311d7aa7813e6f18310a623255517cc0fa32d2415929e0f5e439c56074c29" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x989680", + "to": "", + "value": "0x00", + "data": "0x610001600081600b8239f30001010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101", + "v": "0x25", + "r": "0xa4a41d0afd04eeddf1225036a39a1a1cb09834fe107f4fadd22675b635bbe6f2", + "s": "0x2edec61109e01f9e704e28a0cfa7d9ef53705deee45a57b3df66bb9ccdd2f18e", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", @@ -315,7 +393,7 @@ }, "004-fork=Cancun-max_size_zeros-max_size_zeros": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -438,7 +516,7 @@ }, "005-fork=Cancun-max_size_ones-max_size_ones": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -561,7 +639,7 @@ }, "006-fork=Cancun-over_limit_zeros-over_limit_zeros": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -594,7 +672,49 @@ { "rlp": "0xf9c294f9023aa075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9c052f9c04f800a839896808080b9c001610001600081600b8239f3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026a0b8ba45e0ef29fa4dae53b530d498e9b320adcd8723772d76b57dfb7f1b640d3da0675ee050b02d95a683235846a39fdc01854f680d98f8723222d339e5a15b30ccc0c0", "expectException": "max initcode size exceeded", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7e", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x22aab18e59439568ed0e4b0fdc155c94d763a101236be988d4cec31fdbedc359" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x989680", + "to": "", + "value": "0x00", + "data": "0x610001600081600b8239f30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "v": "0x26", + "r": "0xb8ba45e0ef29fa4dae53b530d498e9b320adcd8723772d76b57dfb7f1b640d3d", + "s": "0x675ee050b02d95a683235846a39fdc01854f680d98f8723222d339e5a15b30cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", @@ -630,7 +750,7 @@ }, "007-fork=Cancun-over_limit_ones-over_limit_ones": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -663,7 +783,49 @@ { "rlp": "0xf9c294f9023aa075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9c052f9c04f800a839896808080b9c001610001600081600b8239f3000101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010125a0a4a41d0afd04eeddf1225036a39a1a1cb09834fe107f4fadd22675b635bbe6f2a02edec61109e01f9e704e28a0cfa7d9ef53705deee45a57b3df66bb9ccdd2f18ec0c0", "expectException": "max initcode size exceeded", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7e", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x22aab18e59439568ed0e4b0fdc155c94d763a101236be988d4cec31fdbedc359" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x989680", + "to": "", + "value": "0x00", + "data": "0x610001600081600b8239f30001010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101", + "v": "0x25", + "r": "0xa4a41d0afd04eeddf1225036a39a1a1cb09834fe107f4fadd22675b635bbe6f2", + "s": "0x2edec61109e01f9e704e28a0cfa7d9ef53705deee45a57b3df66bb9ccdd2f18e", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", diff --git a/tests/execution-spec-tests/shanghai/eip3860_initcode/initcode/create_opcode_initcode.json b/tests/execution-spec-tests/shanghai/eip3860_initcode/initcode/create_opcode_initcode.json index a5a3b6934f5..b96e4bdf5c2 100644 --- a/tests/execution-spec-tests/shanghai/eip3860_initcode/initcode/create_opcode_initcode.json +++ b/tests/execution-spec-tests/shanghai/eip3860_initcode/initcode/create_opcode_initcode.json @@ -1,7 +1,7 @@ { "000-fork=Shanghai-create-max_size_zeros-max_size_zeros_CREATE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -132,7 +132,7 @@ }, "001-fork=Shanghai-create-max_size_ones-max_size_ones_CREATE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -263,7 +263,7 @@ }, "002-fork=Shanghai-create-over_limit_zeros-over_limit_zeros_CREATE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -385,7 +385,7 @@ }, "003-fork=Shanghai-create-over_limit_ones-over_limit_ones_CREATE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -507,7 +507,7 @@ }, "004-fork=Shanghai-create-empty-empty_CREATE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -638,7 +638,7 @@ }, "005-fork=Shanghai-create-single_byte-single_byte_CREATE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -769,7 +769,7 @@ }, "006-fork=Shanghai-create-32_bytes-32_bytes_CREATE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -900,7 +900,7 @@ }, "007-fork=Shanghai-create-33_bytes-33_bytes_CREATE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -1031,7 +1031,7 @@ }, "008-fork=Shanghai-create-49120_bytes-49120_bytes_CREATE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -1162,7 +1162,7 @@ }, "009-fork=Shanghai-create-49121_bytes-49121_bytes_CREATE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -1293,7 +1293,7 @@ }, "010-fork=Shanghai-create2-max_size_zeros-max_size_zeros_CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -1424,7 +1424,7 @@ }, "011-fork=Shanghai-create2-max_size_ones-max_size_ones_CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -1555,7 +1555,7 @@ }, "012-fork=Shanghai-create2-over_limit_zeros-over_limit_zeros_CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -1677,7 +1677,7 @@ }, "013-fork=Shanghai-create2-over_limit_ones-over_limit_ones_CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -1799,7 +1799,7 @@ }, "014-fork=Shanghai-create2-empty-empty_CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -1930,7 +1930,7 @@ }, "015-fork=Shanghai-create2-single_byte-single_byte_CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -2061,7 +2061,7 @@ }, "016-fork=Shanghai-create2-32_bytes-32_bytes_CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -2192,7 +2192,7 @@ }, "017-fork=Shanghai-create2-33_bytes-33_bytes_CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -2323,7 +2323,7 @@ }, "018-fork=Shanghai-create2-49120_bytes-49120_bytes_CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -2454,7 +2454,7 @@ }, "019-fork=Shanghai-create2-49121_bytes-49121_bytes_CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -2585,7 +2585,7 @@ }, "020-fork=Cancun-create-max_size_zeros-max_size_zeros_CREATE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -2736,7 +2736,7 @@ }, "021-fork=Cancun-create-max_size_ones-max_size_ones_CREATE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -2887,7 +2887,7 @@ }, "022-fork=Cancun-create-over_limit_zeros-over_limit_zeros_CREATE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -3029,7 +3029,7 @@ }, "023-fork=Cancun-create-over_limit_ones-over_limit_ones_CREATE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -3171,7 +3171,7 @@ }, "024-fork=Cancun-create-empty-empty_CREATE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -3322,7 +3322,7 @@ }, "025-fork=Cancun-create-single_byte-single_byte_CREATE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -3473,7 +3473,7 @@ }, "026-fork=Cancun-create-32_bytes-32_bytes_CREATE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -3624,7 +3624,7 @@ }, "027-fork=Cancun-create-33_bytes-33_bytes_CREATE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -3775,7 +3775,7 @@ }, "028-fork=Cancun-create-49120_bytes-49120_bytes_CREATE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -3926,7 +3926,7 @@ }, "029-fork=Cancun-create-49121_bytes-49121_bytes_CREATE": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -4077,7 +4077,7 @@ }, "030-fork=Cancun-create2-max_size_zeros-max_size_zeros_CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -4228,7 +4228,7 @@ }, "031-fork=Cancun-create2-max_size_ones-max_size_ones_CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -4379,7 +4379,7 @@ }, "032-fork=Cancun-create2-over_limit_zeros-over_limit_zeros_CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -4521,7 +4521,7 @@ }, "033-fork=Cancun-create2-over_limit_ones-over_limit_ones_CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -4663,7 +4663,7 @@ }, "034-fork=Cancun-create2-empty-empty_CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -4814,7 +4814,7 @@ }, "035-fork=Cancun-create2-single_byte-single_byte_CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -4965,7 +4965,7 @@ }, "036-fork=Cancun-create2-32_bytes-32_bytes_CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -5116,7 +5116,7 @@ }, "037-fork=Cancun-create2-33_bytes-33_bytes_CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -5267,7 +5267,7 @@ }, "038-fork=Cancun-create2-49120_bytes-49120_bytes_CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -5418,7 +5418,7 @@ }, "039-fork=Cancun-create2-49121_bytes-49121_bytes_CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, diff --git a/tests/execution-spec-tests/shanghai/eip3860_initcode/initcode/gas_usage.json b/tests/execution-spec-tests/shanghai/eip3860_initcode/initcode/gas_usage.json index fe1b0a16c30..285f6deed0c 100644 --- a/tests/execution-spec-tests/shanghai/eip3860_initcode/initcode/gas_usage.json +++ b/tests/execution-spec-tests/shanghai/eip3860_initcode/initcode/gas_usage.json @@ -1,7 +1,7 @@ { "000-fork=Shanghai-too_little_intrinsic_gas-max_size_zeros-max_size_zeros_too_little_intrinsic_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -31,7 +31,46 @@ { "rlp": "0xf9c270f90217a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9c051f9c04e800a8303db738080b9c000610001600081600b8239f30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026a07a12ad14630278748a00c21e70949f53181651993e421cbb42af34f5dfc05721a040b4dc45012128c5ef6fe1089d62077a02a2c5e61e26a2f135254bc63e9299e3c0c0", "expectException": "intrinsic gas too low", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x491311d7aa7813e6f18310a623255517cc0fa32d2415929e0f5e439c56074c29" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x03db73", + "to": "", + "value": "0x00", + "data": "0x610001600081600b8239f300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "v": "0x26", + "r": "0x7a12ad14630278748a00c21e70949f53181651993e421cbb42af34f5dfc05721", + "s": "0x40b4dc45012128c5ef6fe1089d62077a02a2c5e61e26a2f135254bc63e9299e3", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", @@ -55,7 +94,7 @@ }, "001-fork=Shanghai-too_little_intrinsic_gas-max_size_ones-max_size_ones_too_little_intrinsic_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -85,7 +124,46 @@ { "rlp": "0xf9c270f90217a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9c051f9c04e800a830cdae38080b9c000610001600081600b8239f30001010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010126a02e78f86fbae31c01889516a4d1f7f28cc63df394ecc478e8a648b5e47028425fa00fda47a674b50ebb29d0a6cf09c691ed8e70beebc95ea0673dcf2bee3928b87cc0c0", "expectException": "intrinsic gas too low", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x491311d7aa7813e6f18310a623255517cc0fa32d2415929e0f5e439c56074c29" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0cdae3", + "to": "", + "value": "0x00", + "data": "0x610001600081600b8239f300010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101", + "v": "0x26", + "r": "0x2e78f86fbae31c01889516a4d1f7f28cc63df394ecc478e8a648b5e47028425f", + "s": "0x0fda47a674b50ebb29d0a6cf09c691ed8e70beebc95ea0673dcf2bee3928b87c", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", @@ -109,7 +187,7 @@ }, "002-fork=Shanghai-too_little_intrinsic_gas-empty-empty_too_little_intrinsic_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -139,7 +217,46 @@ { "rlp": "0xf9026bf90217a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f84df84b800a82cf0780808025a00372ba5e45d0a0e636f7e32ffca16f97a2f3e4e930b6584b7b114ab3aa191b4fa04afdfcd2bc179e25c7aa74cb991a08f0ae6c01541a36f700be25c6f4c39bc098c0c0", "expectException": "intrinsic gas too low", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x491311d7aa7813e6f18310a623255517cc0fa32d2415929e0f5e439c56074c29" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0xcf07", + "to": "", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x0372ba5e45d0a0e636f7e32ffca16f97a2f3e4e930b6584b7b114ab3aa191b4f", + "s": "0x4afdfcd2bc179e25c7aa74cb991a08f0ae6c01541a36f700be25c6f4c39bc098", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", @@ -163,7 +280,7 @@ }, "003-fork=Shanghai-too_little_intrinsic_gas-single_byte-single_byte_too_little_intrinsic_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -193,7 +310,46 @@ { "rlp": "0xf9026bf90217a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f84df84b800a82cf0d80800025a082244b29c33f38cc89873fc90d5d4464ba0c1120fa7b666d68dd6ba855c71006a043f9021be8aa3a95d60b888d91caf5ef3400992f45caec6e990db3a01cb985e3c0c0", "expectException": "intrinsic gas too low", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x491311d7aa7813e6f18310a623255517cc0fa32d2415929e0f5e439c56074c29" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0xcf0d", + "to": "", + "value": "0x00", + "data": "0x00", + "v": "0x25", + "r": "0x82244b29c33f38cc89873fc90d5d4464ba0c1120fa7b666d68dd6ba855c71006", + "s": "0x43f9021be8aa3a95d60b888d91caf5ef3400992f45caec6e990db3a01cb985e3", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", @@ -217,7 +373,7 @@ }, "004-fork=Shanghai-too_little_intrinsic_gas-32_bytes-32_bytes_too_little_intrinsic_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -247,7 +403,46 @@ { "rlp": "0xf9028bf90217a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f86df86b800a82cff58080a0610001600081600b8239f300000000000000000000000000000000000000000025a07dae455766b7111996f88d8beebade630397f76dcf61244a0a34bc1765f567a8a01570635581d43b7e5070f0e76ccb8368612b0831d78cd124ac886f4203abe4afc0c0", "expectException": "intrinsic gas too low", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x491311d7aa7813e6f18310a623255517cc0fa32d2415929e0f5e439c56074c29" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0xcff5", + "to": "", + "value": "0x00", + "data": "0x610001600081600b8239f3000000000000000000000000000000000000000000", + "v": "0x25", + "r": "0x7dae455766b7111996f88d8beebade630397f76dcf61244a0a34bc1765f567a8", + "s": "0x1570635581d43b7e5070f0e76ccb8368612b0831d78cd124ac886f4203abe4af", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", @@ -271,7 +466,7 @@ }, "005-fork=Shanghai-too_little_intrinsic_gas-33_bytes-33_bytes_too_little_intrinsic_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -301,7 +496,46 @@ { "rlp": "0xf9028cf90217a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f86ef86c800a82cffb8080a1610001600081600b8239f30000000000000000000000000000000000000000000026a010f3533be24d3feaf9ccbb3efa340636d081d900bdf314a4db35e3e5189fe781a03d9ea618e5b4edd41f503e20264feef4420d3a0c7e731046fab9e1f85d2c15a0c0c0", "expectException": "intrinsic gas too low", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x491311d7aa7813e6f18310a623255517cc0fa32d2415929e0f5e439c56074c29" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0xcffb", + "to": "", + "value": "0x00", + "data": "0x610001600081600b8239f300000000000000000000000000000000000000000000", + "v": "0x26", + "r": "0x10f3533be24d3feaf9ccbb3efa340636d081d900bdf314a4db35e3e5189fe781", + "s": "0x3d9ea618e5b4edd41f503e20264feef4420d3a0c7e731046fab9e1f85d2c15a0", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", @@ -325,7 +559,7 @@ }, "006-fork=Shanghai-too_little_intrinsic_gas-49120_bytes-49120_bytes_too_little_intrinsic_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -355,7 +589,46 @@ { "rlp": "0xf9c250f90217a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9c031f9c02e800a8303daf18080b9bfe0610001600081600b8239f3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026a03bedf910a8ed4657737f9a44ec70b3fe204b62c6fb0f9a6987bf20a86add0c24a033ce8e62ec42e5474ecdb6491c2774cb41107ff713a7889eb8fa91689ecbdcbcc0c0", "expectException": "intrinsic gas too low", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x491311d7aa7813e6f18310a623255517cc0fa32d2415929e0f5e439c56074c29" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x03daf1", + "to": "", + "value": "0x00", + "data": "0x610001600081600b8239f30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "v": "0x26", + "r": "0x3bedf910a8ed4657737f9a44ec70b3fe204b62c6fb0f9a6987bf20a86add0c24", + "s": "0x33ce8e62ec42e5474ecdb6491c2774cb41107ff713a7889eb8fa91689ecbdcbc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", @@ -379,7 +652,7 @@ }, "007-fork=Shanghai-too_little_intrinsic_gas-49121_bytes-49121_bytes_too_little_intrinsic_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -409,7 +682,46 @@ { "rlp": "0xf9c251f90217a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9c032f9c02f800a8303daf78080b9bfe1610001600081600b8239f300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000025a0dadbbb823c5f563f9764ec9b38285e63dd03bca4922496cfdcc3e803cf730b0ca03c48dc30f97c18f7e24c442144568fd2def2611a18aca47334d8934d44bf7742c0c0", "expectException": "intrinsic gas too low", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x491311d7aa7813e6f18310a623255517cc0fa32d2415929e0f5e439c56074c29" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x03daf7", + "to": "", + "value": "0x00", + "data": "0x610001600081600b8239f3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "v": "0x25", + "r": "0xdadbbb823c5f563f9764ec9b38285e63dd03bca4922496cfdcc3e803cf730b0c", + "s": "0x3c48dc30f97c18f7e24c442144568fd2def2611a18aca47334d8934d44bf7742", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", @@ -433,7 +745,7 @@ }, "008-fork=Shanghai-exact_intrinsic_gas-max_size_zeros-max_size_zeros_exact_intrinsic_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -530,7 +842,7 @@ }, "009-fork=Shanghai-exact_intrinsic_gas-max_size_ones-max_size_ones_exact_intrinsic_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -627,7 +939,7 @@ }, "010-fork=Shanghai-exact_intrinsic_gas-empty-empty_exact_intrinsic_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -730,7 +1042,7 @@ }, "011-fork=Shanghai-exact_intrinsic_gas-single_byte-single_byte_exact_intrinsic_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -833,7 +1145,7 @@ }, "012-fork=Shanghai-exact_intrinsic_gas-32_bytes-32_bytes_exact_intrinsic_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -930,7 +1242,7 @@ }, "013-fork=Shanghai-exact_intrinsic_gas-33_bytes-33_bytes_exact_intrinsic_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -1027,7 +1339,7 @@ }, "014-fork=Shanghai-exact_intrinsic_gas-49120_bytes-49120_bytes_exact_intrinsic_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -1124,7 +1436,7 @@ }, "015-fork=Shanghai-exact_intrinsic_gas-49121_bytes-49121_bytes_exact_intrinsic_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -1221,7 +1533,7 @@ }, "016-fork=Shanghai-too_little_execution_gas-max_size_zeros-max_size_zeros_too_little_execution_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -1318,7 +1630,7 @@ }, "017-fork=Shanghai-too_little_execution_gas-max_size_ones-max_size_ones_too_little_execution_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -1415,7 +1727,7 @@ }, "018-fork=Shanghai-too_little_execution_gas-32_bytes-32_bytes_too_little_execution_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -1512,7 +1824,7 @@ }, "019-fork=Shanghai-too_little_execution_gas-33_bytes-33_bytes_too_little_execution_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -1609,7 +1921,7 @@ }, "020-fork=Shanghai-too_little_execution_gas-49120_bytes-49120_bytes_too_little_execution_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -1706,7 +2018,7 @@ }, "021-fork=Shanghai-too_little_execution_gas-49121_bytes-49121_bytes_too_little_execution_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -1803,7 +2115,7 @@ }, "022-fork=Shanghai-exact_execution_gas-max_size_zeros-max_size_zeros_exact_execution_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -1906,7 +2218,7 @@ }, "023-fork=Shanghai-exact_execution_gas-max_size_ones-max_size_ones_exact_execution_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -2009,7 +2321,7 @@ }, "024-fork=Shanghai-exact_execution_gas-empty-empty_exact_execution_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -2112,7 +2424,7 @@ }, "025-fork=Shanghai-exact_execution_gas-single_byte-single_byte_exact_execution_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -2215,7 +2527,7 @@ }, "026-fork=Shanghai-exact_execution_gas-32_bytes-32_bytes_exact_execution_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -2318,7 +2630,7 @@ }, "027-fork=Shanghai-exact_execution_gas-33_bytes-33_bytes_exact_execution_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -2421,7 +2733,7 @@ }, "028-fork=Shanghai-exact_execution_gas-49120_bytes-49120_bytes_exact_execution_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -2524,7 +2836,7 @@ }, "029-fork=Shanghai-exact_execution_gas-49121_bytes-49121_bytes_exact_execution_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -2627,7 +2939,7 @@ }, "030-fork=Cancun-too_little_intrinsic_gas-max_size_zeros-max_size_zeros_too_little_intrinsic_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -2660,7 +2972,49 @@ { "rlp": "0xf9c293f9023aa075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9c051f9c04e800a8303db738080b9c000610001600081600b8239f30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026a07a12ad14630278748a00c21e70949f53181651993e421cbb42af34f5dfc05721a040b4dc45012128c5ef6fe1089d62077a02a2c5e61e26a2f135254bc63e9299e3c0c0", "expectException": "intrinsic gas too low", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7e", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x22aab18e59439568ed0e4b0fdc155c94d763a101236be988d4cec31fdbedc359" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x03db73", + "to": "", + "value": "0x00", + "data": "0x610001600081600b8239f300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "v": "0x26", + "r": "0x7a12ad14630278748a00c21e70949f53181651993e421cbb42af34f5dfc05721", + "s": "0x40b4dc45012128c5ef6fe1089d62077a02a2c5e61e26a2f135254bc63e9299e3", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", @@ -2696,7 +3050,7 @@ }, "031-fork=Cancun-too_little_intrinsic_gas-max_size_ones-max_size_ones_too_little_intrinsic_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -2729,7 +3083,49 @@ { "rlp": "0xf9c293f9023aa075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9c051f9c04e800a830cdae38080b9c000610001600081600b8239f30001010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010126a02e78f86fbae31c01889516a4d1f7f28cc63df394ecc478e8a648b5e47028425fa00fda47a674b50ebb29d0a6cf09c691ed8e70beebc95ea0673dcf2bee3928b87cc0c0", "expectException": "intrinsic gas too low", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7e", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x22aab18e59439568ed0e4b0fdc155c94d763a101236be988d4cec31fdbedc359" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0cdae3", + "to": "", + "value": "0x00", + "data": "0x610001600081600b8239f300010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101", + "v": "0x26", + "r": "0x2e78f86fbae31c01889516a4d1f7f28cc63df394ecc478e8a648b5e47028425f", + "s": "0x0fda47a674b50ebb29d0a6cf09c691ed8e70beebc95ea0673dcf2bee3928b87c", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", @@ -2765,7 +3161,7 @@ }, "032-fork=Cancun-too_little_intrinsic_gas-empty-empty_too_little_intrinsic_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -2798,7 +3194,49 @@ { "rlp": "0xf9028ef9023aa075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f84df84b800a82cf0780808025a00372ba5e45d0a0e636f7e32ffca16f97a2f3e4e930b6584b7b114ab3aa191b4fa04afdfcd2bc179e25c7aa74cb991a08f0ae6c01541a36f700be25c6f4c39bc098c0c0", "expectException": "intrinsic gas too low", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7e", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x22aab18e59439568ed0e4b0fdc155c94d763a101236be988d4cec31fdbedc359" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0xcf07", + "to": "", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x0372ba5e45d0a0e636f7e32ffca16f97a2f3e4e930b6584b7b114ab3aa191b4f", + "s": "0x4afdfcd2bc179e25c7aa74cb991a08f0ae6c01541a36f700be25c6f4c39bc098", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", @@ -2834,7 +3272,7 @@ }, "033-fork=Cancun-too_little_intrinsic_gas-single_byte-single_byte_too_little_intrinsic_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -2867,7 +3305,49 @@ { "rlp": "0xf9028ef9023aa075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f84df84b800a82cf0d80800025a082244b29c33f38cc89873fc90d5d4464ba0c1120fa7b666d68dd6ba855c71006a043f9021be8aa3a95d60b888d91caf5ef3400992f45caec6e990db3a01cb985e3c0c0", "expectException": "intrinsic gas too low", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7e", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x22aab18e59439568ed0e4b0fdc155c94d763a101236be988d4cec31fdbedc359" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0xcf0d", + "to": "", + "value": "0x00", + "data": "0x00", + "v": "0x25", + "r": "0x82244b29c33f38cc89873fc90d5d4464ba0c1120fa7b666d68dd6ba855c71006", + "s": "0x43f9021be8aa3a95d60b888d91caf5ef3400992f45caec6e990db3a01cb985e3", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", @@ -2903,7 +3383,7 @@ }, "034-fork=Cancun-too_little_intrinsic_gas-32_bytes-32_bytes_too_little_intrinsic_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -2936,7 +3416,49 @@ { "rlp": "0xf902aef9023aa075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f86df86b800a82cff58080a0610001600081600b8239f300000000000000000000000000000000000000000025a07dae455766b7111996f88d8beebade630397f76dcf61244a0a34bc1765f567a8a01570635581d43b7e5070f0e76ccb8368612b0831d78cd124ac886f4203abe4afc0c0", "expectException": "intrinsic gas too low", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7e", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x22aab18e59439568ed0e4b0fdc155c94d763a101236be988d4cec31fdbedc359" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0xcff5", + "to": "", + "value": "0x00", + "data": "0x610001600081600b8239f3000000000000000000000000000000000000000000", + "v": "0x25", + "r": "0x7dae455766b7111996f88d8beebade630397f76dcf61244a0a34bc1765f567a8", + "s": "0x1570635581d43b7e5070f0e76ccb8368612b0831d78cd124ac886f4203abe4af", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", @@ -2972,7 +3494,7 @@ }, "035-fork=Cancun-too_little_intrinsic_gas-33_bytes-33_bytes_too_little_intrinsic_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -3005,7 +3527,49 @@ { "rlp": "0xf902aff9023aa075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f86ef86c800a82cffb8080a1610001600081600b8239f30000000000000000000000000000000000000000000026a010f3533be24d3feaf9ccbb3efa340636d081d900bdf314a4db35e3e5189fe781a03d9ea618e5b4edd41f503e20264feef4420d3a0c7e731046fab9e1f85d2c15a0c0c0", "expectException": "intrinsic gas too low", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7e", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x22aab18e59439568ed0e4b0fdc155c94d763a101236be988d4cec31fdbedc359" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0xcffb", + "to": "", + "value": "0x00", + "data": "0x610001600081600b8239f300000000000000000000000000000000000000000000", + "v": "0x26", + "r": "0x10f3533be24d3feaf9ccbb3efa340636d081d900bdf314a4db35e3e5189fe781", + "s": "0x3d9ea618e5b4edd41f503e20264feef4420d3a0c7e731046fab9e1f85d2c15a0", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", @@ -3041,7 +3605,7 @@ }, "036-fork=Cancun-too_little_intrinsic_gas-49120_bytes-49120_bytes_too_little_intrinsic_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -3074,7 +3638,49 @@ { "rlp": "0xf9c273f9023aa075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9c031f9c02e800a8303daf18080b9bfe0610001600081600b8239f3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026a03bedf910a8ed4657737f9a44ec70b3fe204b62c6fb0f9a6987bf20a86add0c24a033ce8e62ec42e5474ecdb6491c2774cb41107ff713a7889eb8fa91689ecbdcbcc0c0", "expectException": "intrinsic gas too low", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7e", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x22aab18e59439568ed0e4b0fdc155c94d763a101236be988d4cec31fdbedc359" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x03daf1", + "to": "", + "value": "0x00", + "data": "0x610001600081600b8239f30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "v": "0x26", + "r": "0x3bedf910a8ed4657737f9a44ec70b3fe204b62c6fb0f9a6987bf20a86add0c24", + "s": "0x33ce8e62ec42e5474ecdb6491c2774cb41107ff713a7889eb8fa91689ecbdcbc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", @@ -3110,7 +3716,7 @@ }, "037-fork=Cancun-too_little_intrinsic_gas-49121_bytes-49121_bytes_too_little_intrinsic_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -3143,7 +3749,49 @@ { "rlp": "0xf9c274f9023aa075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9c032f9c02f800a8303daf78080b9bfe1610001600081600b8239f300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000025a0dadbbb823c5f563f9764ec9b38285e63dd03bca4922496cfdcc3e803cf730b0ca03c48dc30f97c18f7e24c442144568fd2def2611a18aca47334d8934d44bf7742c0c0", "expectException": "intrinsic gas too low", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7e", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x22aab18e59439568ed0e4b0fdc155c94d763a101236be988d4cec31fdbedc359" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x03daf7", + "to": "", + "value": "0x00", + "data": "0x610001600081600b8239f3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "v": "0x25", + "r": "0xdadbbb823c5f563f9764ec9b38285e63dd03bca4922496cfdcc3e803cf730b0c", + "s": "0x3c48dc30f97c18f7e24c442144568fd2def2611a18aca47334d8934d44bf7742", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], "lastblockhash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", @@ -3179,7 +3827,7 @@ }, "038-fork=Cancun-exact_intrinsic_gas-max_size_zeros-max_size_zeros_exact_intrinsic_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -3296,7 +3944,7 @@ }, "039-fork=Cancun-exact_intrinsic_gas-max_size_ones-max_size_ones_exact_intrinsic_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -3413,7 +4061,7 @@ }, "040-fork=Cancun-exact_intrinsic_gas-empty-empty_exact_intrinsic_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -3536,7 +4184,7 @@ }, "041-fork=Cancun-exact_intrinsic_gas-single_byte-single_byte_exact_intrinsic_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -3659,7 +4307,7 @@ }, "042-fork=Cancun-exact_intrinsic_gas-32_bytes-32_bytes_exact_intrinsic_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -3776,7 +4424,7 @@ }, "043-fork=Cancun-exact_intrinsic_gas-33_bytes-33_bytes_exact_intrinsic_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -3893,7 +4541,7 @@ }, "044-fork=Cancun-exact_intrinsic_gas-49120_bytes-49120_bytes_exact_intrinsic_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -4010,7 +4658,7 @@ }, "045-fork=Cancun-exact_intrinsic_gas-49121_bytes-49121_bytes_exact_intrinsic_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -4127,7 +4775,7 @@ }, "046-fork=Cancun-too_little_execution_gas-max_size_zeros-max_size_zeros_too_little_execution_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -4244,7 +4892,7 @@ }, "047-fork=Cancun-too_little_execution_gas-max_size_ones-max_size_ones_too_little_execution_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -4361,7 +5009,7 @@ }, "048-fork=Cancun-too_little_execution_gas-32_bytes-32_bytes_too_little_execution_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -4478,7 +5126,7 @@ }, "049-fork=Cancun-too_little_execution_gas-33_bytes-33_bytes_too_little_execution_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -4595,7 +5243,7 @@ }, "050-fork=Cancun-too_little_execution_gas-49120_bytes-49120_bytes_too_little_execution_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -4712,7 +5360,7 @@ }, "051-fork=Cancun-too_little_execution_gas-49121_bytes-49121_bytes_too_little_execution_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -4829,7 +5477,7 @@ }, "052-fork=Cancun-exact_execution_gas-max_size_zeros-max_size_zeros_exact_execution_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -4952,7 +5600,7 @@ }, "053-fork=Cancun-exact_execution_gas-max_size_ones-max_size_ones_exact_execution_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -5075,7 +5723,7 @@ }, "054-fork=Cancun-exact_execution_gas-empty-empty_exact_execution_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -5198,7 +5846,7 @@ }, "055-fork=Cancun-exact_execution_gas-single_byte-single_byte_exact_execution_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -5321,7 +5969,7 @@ }, "056-fork=Cancun-exact_execution_gas-32_bytes-32_bytes_exact_execution_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -5444,7 +6092,7 @@ }, "057-fork=Cancun-exact_execution_gas-33_bytes-33_bytes_exact_execution_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -5567,7 +6215,7 @@ }, "058-fork=Cancun-exact_execution_gas-49120_bytes-49120_bytes_exact_execution_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, @@ -5690,7 +6338,7 @@ }, "059-fork=Cancun-exact_execution_gas-49121_bytes-49121_bytes_exact_execution_gas": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, diff --git a/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/balance_within_block.json b/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/balance_within_block.json index 61cb2f7e15f..5a18bc67626 100644 --- a/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/balance_within_block.json +++ b/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/balance_within_block.json @@ -1,7 +1,7 @@ { "000-fork=Shanghai": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, @@ -174,7 +174,7 @@ }, "001-fork=Cancun": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, diff --git a/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/large_amount.json b/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/large_amount.json index 6daaac2c274..c36cb8c6855 100644 --- a/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/large_amount.json +++ b/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/large_amount.json @@ -1,7 +1,7 @@ { "000-fork=Shanghai": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, @@ -138,7 +138,7 @@ }, "001-fork=Cancun": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, diff --git a/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/many_withdrawals.json b/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/many_withdrawals.json index 70aeb5f3546..067bc861937 100644 --- a/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/many_withdrawals.json +++ b/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/many_withdrawals.json @@ -1,7 +1,7 @@ { "000-fork=Shanghai": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, @@ -7278,7 +7278,7 @@ }, "001-fork=Cancun": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, diff --git a/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/multiple_withdrawals_same_address.json b/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/multiple_withdrawals_same_address.json index 2bf4102a04f..d6e4c8e2d13 100644 --- a/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/multiple_withdrawals_same_address.json +++ b/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/multiple_withdrawals_same_address.json @@ -1,7 +1,7 @@ { "000-fork=Shanghai-test_case=single_block-single_block": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, @@ -1266,7 +1266,7 @@ }, "001-fork=Shanghai-test_case=multiple_blocks-multiple_blocks": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, @@ -2811,7 +2811,7 @@ }, "002-fork=Cancun-test_case=single_block-single_block": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, @@ -4096,7 +4096,7 @@ }, "003-fork=Cancun-test_case=multiple_blocks-multiple_blocks": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, diff --git a/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/newly_created_contract.json b/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/newly_created_contract.json index 5cc5f9a776f..1ae43ec99d8 100644 --- a/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/newly_created_contract.json +++ b/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/newly_created_contract.json @@ -1,7 +1,7 @@ { "000-fork=Shanghai-without_tx_value-fork=Shanghai": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, @@ -111,7 +111,7 @@ }, "001-fork=Shanghai-with_tx_value-fork=Shanghai": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, @@ -221,7 +221,7 @@ }, "002-fork=Cancun-without_tx_value-fork=Cancun": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, @@ -351,7 +351,7 @@ }, "003-fork=Cancun-with_tx_value-fork=Cancun": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, diff --git a/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/no_evm_execution.json b/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/no_evm_execution.json index e251282637a..c442acb123c 100644 --- a/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/no_evm_execution.json +++ b/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/no_evm_execution.json @@ -1,7 +1,7 @@ { "000-fork=Shanghai": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, @@ -250,7 +250,7 @@ }, "001-fork=Cancun": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, diff --git a/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/self_destructing_account.json b/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/self_destructing_account.json index 173482f21cd..771d89d620d 100644 --- a/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/self_destructing_account.json +++ b/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/self_destructing_account.json @@ -1,7 +1,7 @@ { "000-fork=Shanghai": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, @@ -129,7 +129,7 @@ }, "001-fork=Cancun": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, diff --git a/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/use_value_in_contract.json b/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/use_value_in_contract.json index 39c15efaf6a..9d64b85b3fc 100644 --- a/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/use_value_in_contract.json +++ b/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/use_value_in_contract.json @@ -1,7 +1,7 @@ { "000-fork=Shanghai": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, @@ -173,7 +173,7 @@ }, "001-fork=Cancun": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, diff --git a/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/use_value_in_tx.json b/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/use_value_in_tx.json index bdf19ab7ec3..83b8252b169 100644 --- a/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/use_value_in_tx.json +++ b/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/use_value_in_tx.json @@ -1,7 +1,7 @@ { "000-fork=Shanghai-tx_in_withdrawals_block": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, @@ -31,7 +31,53 @@ { "rlp": "0xf9029ef90217a08a333fad2b42ff063107bb84b198ac771a5b22198cc94d62b8f4bab4914509b5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01152e1850f7a20f6afa4b5e5966010e07c9105c04edc713e5753e01c97c94426a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a0a485a3bd07e29cb8234b5f093d5216eb8b965fb2693c66fea254f6cacef97a6ff865f86380843b9aca00825208940000000000000000000000000000000000000100808026a0e319535da2cae2d72ddb352054535d000c23acdc7cad9d828891253f3850d0d2a032fe4444149b609e2ffa621e23e179b12028309fdb8cb0a5c1bbc58135299af1c0dbda808094a94f5374fce5edbc8e2a8697c15331677e6ebf0b825209", "expectException": "Transaction without funds", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x8a333fad2b42ff063107bb84b198ac771a5b22198cc94d62b8f4bab4914509b5", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x1152e1850f7a20f6afa4b5e5966010e07c9105c04edc713e5753e01c97c94426", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0xa485a3bd07e29cb8234b5f093d5216eb8b965fb2693c66fea254f6cacef97a6f", + "hash": "0x92d764bca1c2535ce981819b338bae5109125a89c5d4b58b3fb0bd0be80f4b89" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x3b9aca00", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "v": "0x26", + "r": "0xe319535da2cae2d72ddb352054535d000c23acdc7cad9d828891253f3850d0d2", + "s": "0x32fe4444149b609e2ffa621e23e179b12028309fdb8cb0a5c1bbc58135299af1", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "amount": "0x5209" + } + ] + } } ], "lastblockhash": "0x8a333fad2b42ff063107bb84b198ac771a5b22198cc94d62b8f4bab4914509b5", @@ -55,7 +101,7 @@ }, "001-fork=Shanghai-tx_after_withdrawals_block": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, @@ -186,7 +232,7 @@ }, "002-fork=Cancun-tx_in_withdrawals_block": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, @@ -219,7 +265,56 @@ { "rlp": "0xf902c1f9023aa093ba43976ae2b42938748d0dc8bac627e08d39b94334f071426217e432b139bfa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0682e97201201372e19a26af611381a7beec0f241a58f183a8d6433f5632bd67da056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a0a485a3bd07e29cb8234b5f093d5216eb8b965fb2693c66fea254f6cacef97a6f8080a00000000000000000000000000000000000000000000000000000000000000000f865f86380843b9aca00825208940000000000000000000000000000000000000100808026a0e319535da2cae2d72ddb352054535d000c23acdc7cad9d828891253f3850d0d2a032fe4444149b609e2ffa621e23e179b12028309fdb8cb0a5c1bbc58135299af1c0dbda808094a94f5374fce5edbc8e2a8697c15331677e6ebf0b825209", "expectException": "Transaction without funds", - "blocknumber": "1" + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x93ba43976ae2b42938748d0dc8bac627e08d39b94334f071426217e432b139bf", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x682e97201201372e19a26af611381a7beec0f241a58f183a8d6433f5632bd67d", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0xa485a3bd07e29cb8234b5f093d5216eb8b965fb2693c66fea254f6cacef97a6f", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x6ef6a053154da7e067734d8b7066e8784eb979005a969a02858c9ee6c26f0c04" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x3b9aca00", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "v": "0x26", + "r": "0xe319535da2cae2d72ddb352054535d000c23acdc7cad9d828891253f3850d0d2", + "s": "0x32fe4444149b609e2ffa621e23e179b12028309fdb8cb0a5c1bbc58135299af1", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "amount": "0x5209" + } + ] + } } ], "lastblockhash": "0x93ba43976ae2b42938748d0dc8bac627e08d39b94334f071426217e432b139bf", @@ -255,7 +350,7 @@ }, "003-fork=Cancun-tx_after_withdrawals_block": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, diff --git a/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/withdrawing_to_precompiles.json b/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/withdrawing_to_precompiles.json index 3b52637a694..fa689a8f013 100644 --- a/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/withdrawing_to_precompiles.json +++ b/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/withdrawing_to_precompiles.json @@ -1,7 +1,7 @@ { "000-fork=Shanghai-precompile=9-amount=0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, @@ -132,7 +132,7 @@ }, "001-fork=Shanghai-precompile=9-amount=1": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, @@ -269,7 +269,7 @@ }, "002-fork=Shanghai-precompile=5-amount=0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, @@ -400,7 +400,7 @@ }, "003-fork=Shanghai-precompile=5-amount=1": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, @@ -537,7 +537,7 @@ }, "004-fork=Shanghai-precompile=6-amount=0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, @@ -668,7 +668,7 @@ }, "005-fork=Shanghai-precompile=6-amount=1": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, @@ -805,7 +805,7 @@ }, "006-fork=Shanghai-precompile=7-amount=0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, @@ -936,7 +936,7 @@ }, "007-fork=Shanghai-precompile=7-amount=1": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, @@ -1073,7 +1073,7 @@ }, "008-fork=Shanghai-precompile=8-amount=0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, @@ -1204,7 +1204,7 @@ }, "009-fork=Shanghai-precompile=8-amount=1": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, @@ -1341,7 +1341,7 @@ }, "010-fork=Shanghai-precompile=1-amount=0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, @@ -1472,7 +1472,7 @@ }, "011-fork=Shanghai-precompile=1-amount=1": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, @@ -1609,7 +1609,7 @@ }, "012-fork=Shanghai-precompile=2-amount=0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, @@ -1740,7 +1740,7 @@ }, "013-fork=Shanghai-precompile=2-amount=1": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, @@ -1877,7 +1877,7 @@ }, "014-fork=Shanghai-precompile=3-amount=0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, @@ -2008,7 +2008,7 @@ }, "015-fork=Shanghai-precompile=3-amount=1": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, @@ -2145,7 +2145,7 @@ }, "016-fork=Shanghai-precompile=4-amount=0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, @@ -2276,7 +2276,7 @@ }, "017-fork=Shanghai-precompile=4-amount=1": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, @@ -2413,7 +2413,7 @@ }, "018-fork=Cancun-precompile=10-amount=0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, @@ -2568,7 +2568,7 @@ }, "019-fork=Cancun-precompile=10-amount=1": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, @@ -2729,7 +2729,7 @@ }, "020-fork=Cancun-precompile=9-amount=0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, @@ -2884,7 +2884,7 @@ }, "021-fork=Cancun-precompile=9-amount=1": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, @@ -3045,7 +3045,7 @@ }, "022-fork=Cancun-precompile=5-amount=0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, @@ -3200,7 +3200,7 @@ }, "023-fork=Cancun-precompile=5-amount=1": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, @@ -3361,7 +3361,7 @@ }, "024-fork=Cancun-precompile=6-amount=0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, @@ -3516,7 +3516,7 @@ }, "025-fork=Cancun-precompile=6-amount=1": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, @@ -3677,7 +3677,7 @@ }, "026-fork=Cancun-precompile=7-amount=0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, @@ -3832,7 +3832,7 @@ }, "027-fork=Cancun-precompile=7-amount=1": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, @@ -3993,7 +3993,7 @@ }, "028-fork=Cancun-precompile=8-amount=0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, @@ -4148,7 +4148,7 @@ }, "029-fork=Cancun-precompile=8-amount=1": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, @@ -4309,7 +4309,7 @@ }, "030-fork=Cancun-precompile=1-amount=0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, @@ -4464,7 +4464,7 @@ }, "031-fork=Cancun-precompile=1-amount=1": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, @@ -4625,7 +4625,7 @@ }, "032-fork=Cancun-precompile=2-amount=0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, @@ -4780,7 +4780,7 @@ }, "033-fork=Cancun-precompile=2-amount=1": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, @@ -4941,7 +4941,7 @@ }, "034-fork=Cancun-precompile=3-amount=0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, @@ -5096,7 +5096,7 @@ }, "035-fork=Cancun-precompile=3-amount=1": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, @@ -5257,7 +5257,7 @@ }, "036-fork=Cancun-precompile=4-amount=0": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, @@ -5412,7 +5412,7 @@ }, "037-fork=Cancun-precompile=4-amount=1": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, diff --git a/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/zero_amount.json b/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/zero_amount.json index 444107ced20..bf9c4ee7b80 100644 --- a/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/zero_amount.json +++ b/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/zero_amount.json @@ -1,7 +1,7 @@ { "000-fork=Shanghai-two_withdrawals_no_value-two_withdrawals_no_value": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, @@ -102,7 +102,7 @@ }, "001-fork=Shanghai-three_withdrawals_one_with_value-three_withdrawals_one_with_value": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, @@ -215,7 +215,7 @@ }, "002-fork=Shanghai-four_withdrawals_one_with_value_one_with_max-four_withdrawals_one_with_value_one_with_max": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, @@ -340,7 +340,7 @@ }, "003-fork=Shanghai-four_withdrawals_one_with_value_one_with_max_reversed_order-four_withdrawals_one_with_value_one_with_max_reversed_order": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, @@ -465,7 +465,7 @@ }, "004-fork=Cancun-two_withdrawals_no_value-two_withdrawals_no_value": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, @@ -586,7 +586,7 @@ }, "005-fork=Cancun-three_withdrawals_one_with_value-three_withdrawals_one_with_value": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, @@ -719,7 +719,7 @@ }, "006-fork=Cancun-four_withdrawals_one_with_value_one_with_max-four_withdrawals_one_with_value_one_with_max": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, @@ -864,7 +864,7 @@ }, "007-fork=Cancun-four_withdrawals_one_with_value_one_with_max_reversed_order-four_withdrawals_one_with_value_one_with_max_reversed_order": { "_info": { - "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, diff --git a/tests/state_test.go b/tests/state_test.go index 711294ef653..844288364c2 100644 --- a/tests/state_test.go +++ b/tests/state_test.go @@ -28,9 +28,9 @@ import ( "testing" "github.com/ledgerwatch/erigon-lib/common/datadir" + "github.com/ledgerwatch/erigon/core/state/temporal" "github.com/ledgerwatch/log/v3" - "github.com/ledgerwatch/erigon/core/state/temporal" "github.com/ledgerwatch/erigon/core/vm" "github.com/ledgerwatch/erigon/eth/tracers/logger" ) @@ -38,7 +38,7 @@ import ( func TestState(t *testing.T) { defer log.Root().SetHandler(log.Root().GetHandler()) log.Root().SetHandler(log.LvlFilterHandler(log.LvlError, log.StderrHandler)) - if runtime.GOOS == "windows" || runtime.GOOS == "darwin" { + if runtime.GOOS == "windows" { t.Skip("fix me on win please") // it's too slow on win and stops on macos, need generally improve speed of this tests } //t.Parallel() @@ -49,12 +49,12 @@ func TestState(t *testing.T) { st.skipLoad(`^stTimeConsuming/`) st.skipLoad(`.*vmPerformance/loop.*`) + _, db, _ := temporal.NewTestDB(t, datadir.New(t.TempDir()), nil) st.walk(t, stateTestDir, func(t *testing.T, name string, test *StateTest) { for _, subtest := range test.Subtests() { subtest := subtest key := fmt.Sprintf("%s/%d", subtest.Fork, subtest.Index) t.Run(key, func(t *testing.T) { - _, db, _ := temporal.NewTestDB(t, datadir.New(t.TempDir()), nil) withTrace(t, func(vmconfig vm.Config) error { tx, err := db.BeginRw(context.Background()) if err != nil { diff --git a/tests/state_test_util.go b/tests/state_test_util.go index a95d9204ef8..98b5e9793a3 100644 --- a/tests/state_test_util.go +++ b/tests/state_test_util.go @@ -264,8 +264,8 @@ func (t *StateTest) RunNoVerify(tx kv.RwTx, subtest StateSubtest, vmconfig vm.Co if err != nil { return nil, libcommon.Hash{}, err } - h := common.NewHasher() - defer common.ReturnHasherToPool(h) + h := libcommon.NewHasher() + defer libcommon.ReturnHasherToPool(h) for k, v, err := c.First(); k != nil; k, v, err = c.Next() { if err != nil { return nil, libcommon.Hash{}, fmt.Errorf("interate over plain state: %w", err) @@ -288,11 +288,11 @@ func (t *StateTest) RunNoVerify(tx kv.RwTx, subtest StateSubtest, vmconfig vm.Co h.Sha.Write(k[length.Addr+length.Incarnation:]) //nolint:errcheck h.Sha.Read(newK[length.Hash+length.Incarnation:]) - if err = tx.Put(kv.HashedStorage, newK, common.CopyBytes(v)); err != nil { + if err = tx.Put(kv.HashedStorage, newK, libcommon.CopyBytes(v)); err != nil { return nil, libcommon.Hash{}, fmt.Errorf("insert hashed key: %w", err) } } else { - if err = tx.Put(kv.HashedAccounts, newK, common.CopyBytes(v)); err != nil { + if err = tx.Put(kv.HashedAccounts, newK, libcommon.CopyBytes(v)); err != nil { return nil, libcommon.Hash{}, fmt.Errorf("insert hashed key: %w", err) } } diff --git a/turbo/adapter/ethapi/api.go b/turbo/adapter/ethapi/api.go index 2e55ac3a45f..a640a8f767d 100644 --- a/turbo/adapter/ethapi/api.go +++ b/turbo/adapter/ethapi/api.go @@ -19,6 +19,7 @@ package ethapi import ( "errors" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "math/big" "github.com/holiman/uint256" @@ -28,7 +29,6 @@ import ( "github.com/ledgerwatch/log/v3" "github.com/ledgerwatch/erigon/accounts/abi" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/common/math" "github.com/ledgerwatch/erigon/core" "github.com/ledgerwatch/erigon/core/types" diff --git a/turbo/adapter/ethapi/get_proof.go b/turbo/adapter/ethapi/get_proof.go index 49832b7f910..ddeda5bd466 100644 --- a/turbo/adapter/ethapi/get_proof.go +++ b/turbo/adapter/ethapi/get_proof.go @@ -2,11 +2,11 @@ package ethapi import ( "bytes" + "github.com/ledgerwatch/erigon-lib/common/hexutil" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/length" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core/types/accounts" "github.com/ledgerwatch/erigon/turbo/trie" ) diff --git a/turbo/app/snapshots_cmd.go b/turbo/app/snapshots_cmd.go index e4989a2dffb..686ea81d9e1 100644 --- a/turbo/app/snapshots_cmd.go +++ b/turbo/app/snapshots_cmd.go @@ -21,7 +21,6 @@ import ( "github.com/ledgerwatch/erigon-lib/common/datadir" "github.com/ledgerwatch/erigon-lib/common/dir" "github.com/ledgerwatch/erigon-lib/compress" - "github.com/ledgerwatch/erigon-lib/downloader/snaptype" "github.com/ledgerwatch/erigon-lib/etl" "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/erigon-lib/kv/kvcfg" @@ -128,11 +127,6 @@ var ( Usage: "Do operation every N blocks", Value: 1_000, } - SnapshotSegmentSizeFlag = cli.Uint64Flag{ - Name: "segment.size", - Usage: "Amount of blocks in each segment", - Value: snaptype.Erigon2SegmentSize, - } SnapshotRebuildFlag = cli.BoolFlag{ Name: "rebuild", Usage: "Force rebuild", @@ -401,7 +395,7 @@ func doRetireCommand(cliCtx *cli.Context) error { db := mdbx.NewMDBX(logger).Label(kv.ChainDB).Path(dirs.Chaindata).MustOpen() defer db.Close() - cfg := ethconfig.NewSnapCfg(true, true, true) + cfg := ethconfig.NewSnapCfg(true, false, true) blockSnapshots := freezeblocks.NewRoSnapshots(cfg, dirs.Snap, logger) borSnapshots := freezeblocks.NewBorRoSnapshots(cfg, dirs.Snap, logger) if err := blockSnapshots.ReopenFolder(); err != nil { @@ -435,11 +429,41 @@ func doRetireCommand(cliCtx *cli.Context) error { } logger.Info("Params", "from", from, "to", to, "every", every) + { + logEvery := time.NewTicker(10 * time.Second) + defer logEvery.Stop() + + for j := 0; j < 10_000; j++ { // prune happens by small steps, so need many runs + if err := db.Update(ctx, func(tx kv.RwTx) error { + if err := br.PruneAncientBlocks(tx, 100, false /* includeBor */); err != nil { + return err + } + + select { + case <-ctx.Done(): + return ctx.Err() + case <-logEvery.C: + firstNonGenesisHeader, err := rawdbv3.SecondKey(tx, kv.Headers) + if err != nil { + return err + } + if len(firstNonGenesisHeader) > 0 { + logger.Info("Prunning old blocks", "progress", binary.BigEndian.Uint64(firstNonGenesisHeader)) + } + default: + } + return nil + }); err != nil { + return err + } + } + } + for i := from; i < to; i += every { - if err := br.RetireBlocks(ctx, i, i+every, log.LvlInfo, nil); err != nil { + if err := br.RetireBlocks(ctx, i, i+every, log.LvlInfo, nil, nil); err != nil { panic(err) } - if err := db.UpdateNosync(ctx, func(tx kv.RwTx) error { + if err := db.Update(ctx, func(tx kv.RwTx) error { if err := rawdb.WriteSnapshots(tx, blockReader.FrozenFiles(), agg.Files()); err != nil { return err } diff --git a/turbo/cli/default_flags.go b/turbo/cli/default_flags.go index 40fad68e151..a65180a7137 100644 --- a/turbo/cli/default_flags.go +++ b/turbo/cli/default_flags.go @@ -51,6 +51,7 @@ var DefaultFlags = []cli.Flag{ &BadBlockFlag, &utils.HTTPEnabledFlag, + &utils.HTTPServerEnabledFlag, &utils.GraphQLEnabledFlag, &utils.HTTPListenAddrFlag, &utils.HTTPPortFlag, @@ -164,6 +165,9 @@ var DefaultFlags = []cli.Flag{ &utils.OtsSearchMaxCapFlag, &utils.SilkwormPathFlag, + &utils.SilkwormExecutionFlag, + &utils.SilkwormRpcDaemonFlag, + &utils.SilkwormSentryFlag, &utils.TrustedSetupFile, } diff --git a/turbo/cli/flags.go b/turbo/cli/flags.go index e8edff7a466..80bd6210f42 100644 --- a/turbo/cli/flags.go +++ b/turbo/cli/flags.go @@ -4,6 +4,8 @@ import ( "fmt" "time" + "github.com/ledgerwatch/erigon-lib/common/hexutil" + "github.com/ledgerwatch/erigon-lib/txpool/txpoolcfg" libcommon "github.com/ledgerwatch/erigon-lib/common" @@ -20,7 +22,6 @@ import ( "github.com/ledgerwatch/erigon/cmd/rpcdaemon/cli/httpcfg" "github.com/ledgerwatch/erigon/cmd/utils" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/eth/ethconfig" "github.com/ledgerwatch/erigon/ethdb/prune" "github.com/ledgerwatch/erigon/node/nodecfg" @@ -356,8 +357,9 @@ func setEmbeddedRpcDaemon(ctx *cli.Context, cfg *nodecfg.Config, logger log.Logg logger.Info("starting HTTP APIs", "APIs", apis) c := &httpcfg.HttpCfg{ - Enabled: ctx.Bool(utils.HTTPEnabledFlag.Name), - Dirs: cfg.Dirs, + Enabled: ctx.Bool(utils.HTTPEnabledFlag.Name), + HttpServerEnabled: ctx.Bool(utils.HTTPServerEnabledFlag.Name), + Dirs: cfg.Dirs, TLSKeyFile: cfg.TLSKeyFile, TLSCACert: cfg.TLSCACert, diff --git a/turbo/debug/flags.go b/turbo/debug/flags.go index 69931546f9b..4405cb81e3d 100644 --- a/turbo/debug/flags.go +++ b/turbo/debug/flags.go @@ -24,6 +24,8 @@ import ( "os" "path/filepath" + "github.com/ledgerwatch/erigon-lib/metrics" + "github.com/ledgerwatch/log/v3" "github.com/pelletier/go-toml" "github.com/spf13/cobra" @@ -32,7 +34,7 @@ import ( "github.com/ledgerwatch/erigon/common/fdlimit" "github.com/ledgerwatch/erigon/eth/tracers" - "github.com/ledgerwatch/erigon/metrics" + "github.com/ledgerwatch/erigon/turbo/logging" "github.com/ledgerwatch/erigon/turbo/tracing" ) diff --git a/turbo/engineapi/engine_block_downloader/block_downloader.go b/turbo/engineapi/engine_block_downloader/block_downloader.go index b14f52e9abf..7c08b42ee86 100644 --- a/turbo/engineapi/engine_block_downloader/block_downloader.go +++ b/turbo/engineapi/engine_block_downloader/block_downloader.go @@ -5,6 +5,7 @@ import ( "context" "encoding/binary" "fmt" + "github.com/ledgerwatch/erigon-lib/kv/dbutils" "math/big" "sync" "sync/atomic" @@ -17,7 +18,6 @@ import ( "github.com/ledgerwatch/erigon-lib/etl" "github.com/ledgerwatch/erigon-lib/gointerfaces/execution" "github.com/ledgerwatch/erigon-lib/kv" - "github.com/ledgerwatch/erigon/common/dbutils" "github.com/ledgerwatch/erigon/core/rawdb" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/rlp" diff --git a/turbo/engineapi/engine_helpers/fork_validator.go b/turbo/engineapi/engine_helpers/fork_validator.go index f25994f73d0..9f742279a95 100644 --- a/turbo/engineapi/engine_helpers/fork_validator.go +++ b/turbo/engineapi/engine_helpers/fork_validator.go @@ -17,12 +17,12 @@ import ( "context" "errors" "fmt" + "github.com/ledgerwatch/erigon/cl/phase1/core/state/lru" "sync" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/erigon-lib/kv/membatchwithdb" - "github.com/ledgerwatch/erigon/cl/phase1/core/state/lru" "github.com/ledgerwatch/erigon/consensus" "github.com/ledgerwatch/erigon/eth/stagedsync/stages" "github.com/ledgerwatch/erigon/turbo/engineapi/engine_types" @@ -272,7 +272,6 @@ func (fv *ForkValidator) validateAndStorePayload(tx kv.RwTx, header *types.Heade if criticalError != nil { return } - fmt.Println(latestValidNumber) latestValidHash, criticalError = rawdb.ReadCanonicalHash(tx, latestValidNumber) if criticalError != nil { return diff --git a/turbo/engineapi/engine_server.go b/turbo/engineapi/engine_server.go index a461006e1b8..a29e2031dd8 100644 --- a/turbo/engineapi/engine_server.go +++ b/turbo/engineapi/engine_server.go @@ -5,6 +5,8 @@ import ( "encoding/binary" "errors" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" + "github.com/ledgerwatch/erigon/cl/clparams" "math/big" "reflect" "sync" @@ -22,11 +24,9 @@ import ( "github.com/ledgerwatch/erigon-lib/kv/kvcache" libstate "github.com/ledgerwatch/erigon-lib/state" - "github.com/ledgerwatch/erigon/cl/clparams" "github.com/ledgerwatch/erigon/cmd/rpcdaemon/cli" "github.com/ledgerwatch/erigon/cmd/rpcdaemon/cli/httpcfg" "github.com/ledgerwatch/erigon/common" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/common/math" "github.com/ledgerwatch/erigon/consensus" "github.com/ledgerwatch/erigon/consensus/merge" diff --git a/turbo/engineapi/engine_types/jsonrpc.go b/turbo/engineapi/engine_types/jsonrpc.go index 0d5d9f13f1f..3e3bbde23e8 100644 --- a/turbo/engineapi/engine_types/jsonrpc.go +++ b/turbo/engineapi/engine_types/jsonrpc.go @@ -5,12 +5,13 @@ import ( "encoding/json" "errors" + "github.com/ledgerwatch/erigon-lib/common/hexutil" + "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/hexutility" "github.com/ledgerwatch/erigon-lib/gointerfaces" "github.com/ledgerwatch/erigon-lib/gointerfaces/execution" types2 "github.com/ledgerwatch/erigon-lib/gointerfaces/types" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core/types" ) diff --git a/turbo/engineapi/interface.go b/turbo/engineapi/interface.go index 7c8468a61da..cca6c812af3 100644 --- a/turbo/engineapi/interface.go +++ b/turbo/engineapi/interface.go @@ -3,8 +3,8 @@ package engineapi import ( "context" "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "github.com/ledgerwatch/erigon-lib/common/hexutility" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/turbo/engineapi/engine_types" ) diff --git a/turbo/execution/eth1/block_building.go b/turbo/execution/eth1/block_building.go index 609cb794acf..6e8174e782d 100644 --- a/turbo/execution/eth1/block_building.go +++ b/turbo/execution/eth1/block_building.go @@ -12,7 +12,6 @@ import ( "github.com/ledgerwatch/erigon-lib/gointerfaces/execution" types2 "github.com/ledgerwatch/erigon-lib/gointerfaces/types" - "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/core" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/rpc" @@ -32,7 +31,7 @@ func (e *EthereumExecutionModule) checkWithdrawalsPresence(time uint64, withdraw } func (e *EthereumExecutionModule) evictOldBuilders() { - ids := common.SortedKeys(e.builders) + ids := libcommon.SortedKeys(e.builders) // remove old builders so that at most MaxBuilders - 1 remain for i := 0; i <= len(e.builders)-engine_helpers.MaxBuilders; i++ { diff --git a/turbo/execution/eth1/eth1_chain_reader.go/chain_reader.go b/turbo/execution/eth1/eth1_chain_reader.go/chain_reader.go index 15324177108..c538c28023c 100644 --- a/turbo/execution/eth1/eth1_chain_reader.go/chain_reader.go +++ b/turbo/execution/eth1/eth1_chain_reader.go/chain_reader.go @@ -247,8 +247,12 @@ func (c ChainReaderWriterEth1) IsCanonicalHash(hash libcommon.Hash) (bool, error return resp.Canonical, nil } -func (ChainReaderWriterEth1) FrozenBlocks() uint64 { - panic("ChainReaderEth1.FrozenBlocks not implemented") +func (c ChainReaderWriterEth1) FrozenBlocks() uint64 { + ret, err := c.executionModule.FrozenBlocks(c.ctx, &emptypb.Empty{}) + if err != nil { + panic(err) + } + return ret.FrozenBlocks } const retryTimeout = 10 * time.Millisecond diff --git a/turbo/execution/eth1/forkchoice.go b/turbo/execution/eth1/forkchoice.go index b48f3c686ee..b6f6527e181 100644 --- a/turbo/execution/eth1/forkchoice.go +++ b/turbo/execution/eth1/forkchoice.go @@ -283,6 +283,10 @@ func (e *EthereumExecutionModule) updateForkChoice(ctx context.Context, blockHas sendForkchoiceErrorWithoutWaiting(outcomeCh, err) return } + if err := stages.SaveStageProgress(tx, stages.BlockHashes, fcuHeader.Number.Uint64()); err != nil { + sendForkchoiceErrorWithoutWaiting(outcomeCh, err) + return + } if err := stages.SaveStageProgress(tx, stages.Bodies, fcuHeader.Number.Uint64()); err != nil { sendForkchoiceErrorWithoutWaiting(outcomeCh, err) return @@ -315,8 +319,6 @@ func (e *EthereumExecutionModule) updateForkChoice(ctx context.Context, blockHas status = execution.ExecutionStatus_BadBlock if log { e.logger.Warn("bad forkchoice", "head", headHash, "hash", blockHash) - h, _ := e.getHeader(ctx, tx, headHash, *headNumber) - fmt.Println(h.Hash()) } } else { valid, err := e.verifyForkchoiceHashes(ctx, tx, blockHash, finalizedHash, safeHash) diff --git a/turbo/execution/eth1/getters.go b/turbo/execution/eth1/getters.go index 3ba9d136dc8..b282bce4e01 100644 --- a/turbo/execution/eth1/getters.go +++ b/turbo/execution/eth1/getters.go @@ -294,3 +294,9 @@ func (e *EthereumExecutionModule) GetForkChoice(ctx context.Context, _ *emptypb. SafeBlockHash: gointerfaces.ConvertHashToH256(rawdb.ReadForkchoiceSafe(tx)), }, nil } + +func (e *EthereumExecutionModule) FrozenBlocks(ctx context.Context, _ *emptypb.Empty) (*execution.FrozenBlocksResponse, error) { + return &execution.FrozenBlocksResponse{ + FrozenBlocks: e.blockReader.FrozenBlocks(), + }, nil +} diff --git a/turbo/jsonrpc/call_traces_test.go b/turbo/jsonrpc/call_traces_test.go index d78714682dd..4fefb1897ca 100644 --- a/turbo/jsonrpc/call_traces_test.go +++ b/turbo/jsonrpc/call_traces_test.go @@ -2,6 +2,7 @@ package jsonrpc import ( "context" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "sync" "testing" @@ -13,7 +14,6 @@ import ( "github.com/valyala/fastjson" "github.com/ledgerwatch/erigon/cmd/rpcdaemon/cli/httpcfg" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/turbo/stages/mock" diff --git a/turbo/jsonrpc/debug_api.go b/turbo/jsonrpc/debug_api.go index ab91c40a0a8..839d39584ef 100644 --- a/turbo/jsonrpc/debug_api.go +++ b/turbo/jsonrpc/debug_api.go @@ -3,6 +3,7 @@ package jsonrpc import ( "context" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" jsoniter "github.com/json-iterator/go" "github.com/ledgerwatch/erigon-lib/common" @@ -12,7 +13,6 @@ import ( "github.com/ledgerwatch/erigon-lib/kv/rawdbv3" "github.com/ledgerwatch/erigon/common/changeset" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core/rawdb" "github.com/ledgerwatch/erigon/core/state" "github.com/ledgerwatch/erigon/core/types/accounts" diff --git a/turbo/jsonrpc/debug_api_test.go b/turbo/jsonrpc/debug_api_test.go index 33ea0e579f3..f4c0abba824 100644 --- a/turbo/jsonrpc/debug_api_test.go +++ b/turbo/jsonrpc/debug_api_test.go @@ -14,7 +14,6 @@ import ( "github.com/ledgerwatch/erigon-lib/kv/kvcache" "github.com/ledgerwatch/erigon-lib/kv/order" "github.com/ledgerwatch/erigon/cmd/rpcdaemon/rpcdaemontest" - common2 "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/eth/tracers" "github.com/ledgerwatch/erigon/rpc" @@ -334,7 +333,7 @@ func TestAccountRange(t *testing.T) { require.Equal(t, 35, len(result.Accounts[addr].Storage)) require.Equal(t, 1, int(result.Accounts[addr].Nonce)) for _, v := range result.Accounts { - hashedCode, _ := common2.HashData(v.Code) + hashedCode, _ := common.HashData(v.Code) require.Equal(t, v.CodeHash.String(), hashedCode.String()) } }) diff --git a/turbo/jsonrpc/erigon_api.go b/turbo/jsonrpc/erigon_api.go index 8c869d79baa..4b1bd336614 100644 --- a/turbo/jsonrpc/erigon_api.go +++ b/turbo/jsonrpc/erigon_api.go @@ -2,6 +2,7 @@ package jsonrpc import ( "context" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "github.com/ledgerwatch/erigon-lib/common" @@ -9,7 +10,6 @@ import ( "github.com/ledgerwatch/erigon-lib/kv" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/p2p" "github.com/ledgerwatch/erigon/rpc" diff --git a/turbo/jsonrpc/erigon_block.go b/turbo/jsonrpc/erigon_block.go index d61069bad63..879dbfd26fd 100644 --- a/turbo/jsonrpc/erigon_block.go +++ b/turbo/jsonrpc/erigon_block.go @@ -5,6 +5,7 @@ import ( "context" "errors" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "sort" "github.com/holiman/uint256" @@ -16,7 +17,6 @@ import ( "github.com/ledgerwatch/erigon-lib/kv/temporal/historyv2" "github.com/ledgerwatch/erigon/turbo/services" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core/rawdb" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/core/types/accounts" diff --git a/turbo/jsonrpc/erigon_system.go b/turbo/jsonrpc/erigon_system.go index 5513d186685..eac0b351554 100644 --- a/turbo/jsonrpc/erigon_system.go +++ b/turbo/jsonrpc/erigon_system.go @@ -3,10 +3,10 @@ package jsonrpc import ( "context" "errors" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "github.com/ledgerwatch/erigon-lib/common" - "github.com/ledgerwatch/erigon/common/hexutil" borfinality "github.com/ledgerwatch/erigon/consensus/bor/finality" "github.com/ledgerwatch/erigon/consensus/bor/finality/whitelist" "github.com/ledgerwatch/erigon/core/forkid" diff --git a/turbo/jsonrpc/eth_accounts.go b/turbo/jsonrpc/eth_accounts.go index 8653a2c6280..dc3c41f5fcc 100644 --- a/turbo/jsonrpc/eth_accounts.go +++ b/turbo/jsonrpc/eth_accounts.go @@ -3,6 +3,7 @@ package jsonrpc import ( "context" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "math/big" libcommon "github.com/ledgerwatch/erigon-lib/common" @@ -15,7 +16,6 @@ import ( txpool_proto "github.com/ledgerwatch/erigon-lib/gointerfaces/txpool" "github.com/ledgerwatch/erigon/common" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/rpc" ) diff --git a/turbo/jsonrpc/eth_api.go b/turbo/jsonrpc/eth_api.go index 51c2b1cf086..650ab85d5ad 100644 --- a/turbo/jsonrpc/eth_api.go +++ b/turbo/jsonrpc/eth_api.go @@ -4,6 +4,7 @@ import ( "bytes" "context" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "math/big" "sync" "sync/atomic" @@ -24,7 +25,6 @@ import ( libstate "github.com/ledgerwatch/erigon-lib/state" types2 "github.com/ledgerwatch/erigon-lib/types" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/common/math" "github.com/ledgerwatch/erigon/consensus" "github.com/ledgerwatch/erigon/consensus/misc" diff --git a/turbo/jsonrpc/eth_api_test.go b/turbo/jsonrpc/eth_api_test.go index 90b7b7c9913..b1d83d3939c 100644 --- a/turbo/jsonrpc/eth_api_test.go +++ b/turbo/jsonrpc/eth_api_test.go @@ -3,6 +3,7 @@ package jsonrpc import ( "context" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "testing" "github.com/holiman/uint256" @@ -10,7 +11,6 @@ import ( "github.com/stretchr/testify/assert" "github.com/ledgerwatch/erigon-lib/kv/kvcache" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core" "github.com/ledgerwatch/erigon/rpc" "github.com/ledgerwatch/erigon/rpc/rpccfg" diff --git a/turbo/jsonrpc/eth_block.go b/turbo/jsonrpc/eth_block.go index 23f5fdb1910..25ba7f9505d 100644 --- a/turbo/jsonrpc/eth_block.go +++ b/turbo/jsonrpc/eth_block.go @@ -3,6 +3,8 @@ package jsonrpc import ( "context" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" + "github.com/ledgerwatch/erigon/cl/clparams" "math/big" "time" @@ -11,8 +13,6 @@ import ( "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/log/v3" - "github.com/ledgerwatch/erigon/cl/clparams" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/common/math" "github.com/ledgerwatch/erigon/core" "github.com/ledgerwatch/erigon/core/rawdb" diff --git a/turbo/jsonrpc/eth_block_test.go b/turbo/jsonrpc/eth_block_test.go index 60d048de256..d4a5f562cf4 100644 --- a/turbo/jsonrpc/eth_block_test.go +++ b/turbo/jsonrpc/eth_block_test.go @@ -2,6 +2,7 @@ package jsonrpc import ( "context" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "math/big" "testing" @@ -11,7 +12,6 @@ import ( "github.com/stretchr/testify/assert" "github.com/ledgerwatch/erigon/cmd/rpcdaemon/rpcdaemontest" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core/rawdb" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/rlp" diff --git a/turbo/jsonrpc/eth_call.go b/turbo/jsonrpc/eth_call.go index b4eb732680b..f12238c680a 100644 --- a/turbo/jsonrpc/eth_call.go +++ b/turbo/jsonrpc/eth_call.go @@ -4,6 +4,7 @@ import ( "context" "errors" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "math/big" "github.com/holiman/uint256" @@ -18,7 +19,6 @@ import ( "github.com/ledgerwatch/erigon-lib/kv" types2 "github.com/ledgerwatch/erigon-lib/types" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core" "github.com/ledgerwatch/erigon/core/state" "github.com/ledgerwatch/erigon/core/types" diff --git a/turbo/jsonrpc/eth_callMany.go b/turbo/jsonrpc/eth_callMany.go index ccf3c7ad442..df7bfd9e377 100644 --- a/turbo/jsonrpc/eth_callMany.go +++ b/turbo/jsonrpc/eth_callMany.go @@ -4,6 +4,7 @@ import ( "context" "encoding/hex" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "math/big" "time" @@ -11,7 +12,6 @@ import ( "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/log/v3" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/common/math" "github.com/ledgerwatch/erigon/core" "github.com/ledgerwatch/erigon/core/state" diff --git a/turbo/jsonrpc/eth_callMany_test.go b/turbo/jsonrpc/eth_callMany_test.go index 9a129c5cc31..2d14e60f200 100644 --- a/turbo/jsonrpc/eth_callMany_test.go +++ b/turbo/jsonrpc/eth_callMany_test.go @@ -4,6 +4,7 @@ import ( "context" "encoding/hex" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "math/big" "strconv" "testing" @@ -14,7 +15,6 @@ import ( "github.com/ledgerwatch/erigon/accounts/abi/bind" "github.com/ledgerwatch/erigon/accounts/abi/bind/backends" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/crypto" "github.com/ledgerwatch/erigon/params" diff --git a/turbo/jsonrpc/eth_call_test.go b/turbo/jsonrpc/eth_call_test.go index 7c3a62b3088..ea7eaabc45e 100644 --- a/turbo/jsonrpc/eth_call_test.go +++ b/turbo/jsonrpc/eth_call_test.go @@ -3,6 +3,7 @@ package jsonrpc import ( "context" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "math/big" "testing" "time" @@ -18,7 +19,6 @@ import ( "github.com/ledgerwatch/erigon-lib/kv/kvcache" "github.com/ledgerwatch/erigon/cmd/rpcdaemon/rpcdaemontest" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/common/math" "github.com/ledgerwatch/erigon/core" "github.com/ledgerwatch/erigon/core/rawdb" diff --git a/turbo/jsonrpc/eth_mining.go b/turbo/jsonrpc/eth_mining.go index 5d6898803e7..b32940feac1 100644 --- a/turbo/jsonrpc/eth_mining.go +++ b/turbo/jsonrpc/eth_mining.go @@ -3,12 +3,12 @@ package jsonrpc import ( "context" "errors" + "github.com/ledgerwatch/erigon-lib/common/hexutil" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/gointerfaces/txpool" "google.golang.org/grpc/status" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core/types" ) diff --git a/turbo/jsonrpc/eth_receipts.go b/turbo/jsonrpc/eth_receipts.go index 0a2053ef71c..6567e6e3c82 100644 --- a/turbo/jsonrpc/eth_receipts.go +++ b/turbo/jsonrpc/eth_receipts.go @@ -5,6 +5,7 @@ import ( "context" "encoding/binary" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "math/big" "github.com/RoaringBitmap/roaring" @@ -20,7 +21,6 @@ import ( "github.com/ledgerwatch/erigon-lib/kv/order" "github.com/ledgerwatch/erigon-lib/kv/rawdbv3" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/consensus" "github.com/ledgerwatch/erigon/consensus/misc" "github.com/ledgerwatch/erigon/core" diff --git a/turbo/jsonrpc/eth_system.go b/turbo/jsonrpc/eth_system.go index e0f59067f4e..470b7159341 100644 --- a/turbo/jsonrpc/eth_system.go +++ b/turbo/jsonrpc/eth_system.go @@ -2,12 +2,12 @@ package jsonrpc import ( "context" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "math/big" "github.com/ledgerwatch/erigon-lib/chain" "github.com/ledgerwatch/erigon-lib/kv" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core/rawdb" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/eth/ethconfig" diff --git a/turbo/jsonrpc/eth_txs.go b/turbo/jsonrpc/eth_txs.go index c6fbe83770d..174087d5596 100644 --- a/turbo/jsonrpc/eth_txs.go +++ b/turbo/jsonrpc/eth_txs.go @@ -3,6 +3,7 @@ package jsonrpc import ( "bytes" "context" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "math/big" "github.com/ledgerwatch/erigon-lib/common" @@ -11,7 +12,6 @@ import ( "github.com/ledgerwatch/erigon-lib/gointerfaces/txpool" "github.com/ledgerwatch/erigon-lib/gointerfaces/types" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core/rawdb" types2 "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/rpc" diff --git a/turbo/jsonrpc/eth_uncles.go b/turbo/jsonrpc/eth_uncles.go index b5a75666a75..8d0acf589c9 100644 --- a/turbo/jsonrpc/eth_uncles.go +++ b/turbo/jsonrpc/eth_uncles.go @@ -2,11 +2,11 @@ package jsonrpc import ( "context" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/log/v3" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core/rawdb" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/rpc" diff --git a/turbo/jsonrpc/graphql_api.go b/turbo/jsonrpc/graphql_api.go index 97b9b0c082e..b32406e9f82 100644 --- a/turbo/jsonrpc/graphql_api.go +++ b/turbo/jsonrpc/graphql_api.go @@ -3,11 +3,11 @@ package jsonrpc import ( "context" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "math/big" "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/kv" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core/rawdb" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/rpc" diff --git a/turbo/jsonrpc/net_api.go b/turbo/jsonrpc/net_api.go index 98e88436b76..f35e36afdf4 100644 --- a/turbo/jsonrpc/net_api.go +++ b/turbo/jsonrpc/net_api.go @@ -3,9 +3,9 @@ package jsonrpc import ( "context" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "strconv" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/turbo/rpchelper" ) diff --git a/turbo/jsonrpc/otterscan_api.go b/turbo/jsonrpc/otterscan_api.go index 5f7c6e3bb4f..89c7e4f8645 100644 --- a/turbo/jsonrpc/otterscan_api.go +++ b/turbo/jsonrpc/otterscan_api.go @@ -4,6 +4,7 @@ import ( "context" "errors" "fmt" + hexutil2 "github.com/ledgerwatch/erigon-lib/common/hexutil" "math/big" "sync" @@ -17,7 +18,6 @@ import ( "github.com/ledgerwatch/erigon-lib/kv/iter" "github.com/ledgerwatch/erigon-lib/kv/order" "github.com/ledgerwatch/erigon-lib/kv/rawdbv3" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/consensus/ethash" "github.com/ledgerwatch/erigon/core" "github.com/ledgerwatch/erigon/core/rawdb" @@ -474,7 +474,7 @@ func (api *OtterscanAPIImpl) traceBlocks(ctx context.Context, addr common.Addres return results[:totalBlocksTraced], hasMore, nil } -func (api *OtterscanAPIImpl) delegateGetBlockByNumber(tx kv.Tx, b *types.Block, number rpc.BlockNumber, inclTx bool) (map[string]interface{}, error) { +func delegateGetBlockByNumber(tx kv.Tx, b *types.Block, number rpc.BlockNumber, inclTx bool) (map[string]interface{}, error) { td, err := rawdb.ReadTd(tx, b.Hash(), b.NumberU64()) if err != nil { return nil, err @@ -484,7 +484,7 @@ func (api *OtterscanAPIImpl) delegateGetBlockByNumber(tx kv.Tx, b *types.Block, if !inclTx { delete(response, "transactions") // workaround for https://github.com/ledgerwatch/erigon/issues/4989#issuecomment-1218415666 } - response["totalDifficulty"] = (*hexutil.Big)(td) + response["totalDifficulty"] = (*hexutil2.Big)(td) response["transactionCount"] = b.Transactions().Len() if err == nil && number == rpc.PendingBlockNumber { @@ -506,7 +506,7 @@ type internalIssuance struct { Issuance string `json:"issuance,omitempty"` } -func (api *OtterscanAPIImpl) delegateIssuance(tx kv.Tx, block *types.Block, chainConfig *chain.Config) (internalIssuance, error) { +func delegateIssuance(tx kv.Tx, block *types.Block, chainConfig *chain.Config) (internalIssuance, error) { if chainConfig.Ethash == nil { // Clique for example has no issuance return internalIssuance{}, nil @@ -520,19 +520,14 @@ func (api *OtterscanAPIImpl) delegateIssuance(tx kv.Tx, block *types.Block, chai } var ret internalIssuance - ret.BlockReward = hexutil.EncodeBig(minerReward.ToBig()) - ret.Issuance = hexutil.EncodeBig(issuance.ToBig()) + ret.BlockReward = hexutil2.EncodeBig(minerReward.ToBig()) + ret.Issuance = hexutil2.EncodeBig(issuance.ToBig()) issuance.Sub(&issuance, &minerReward) - ret.UncleReward = hexutil.EncodeBig(issuance.ToBig()) + ret.UncleReward = hexutil2.EncodeBig(issuance.ToBig()) return ret, nil } -func (api *OtterscanAPIImpl) delegateBlockFees(ctx context.Context, tx kv.Tx, block *types.Block, senders []common.Address, chainConfig *chain.Config) (uint64, error) { - receipts, err := api.getReceipts(ctx, tx, chainConfig, block, senders) - if err != nil { - return 0, fmt.Errorf("getReceipts error: %v", err) - } - +func delegateBlockFees(ctx context.Context, tx kv.Tx, block *types.Block, senders []common.Address, chainConfig *chain.Config, receipts types.Receipts) (uint64, error) { fees := uint64(0) for _, receipt := range receipts { txn := block.Transactions()[receipt.TransactionIndex] @@ -584,7 +579,7 @@ func (api *OtterscanAPIImpl) GetBlockTransactions(ctx context.Context, number rp return nil, err } - getBlockRes, err := api.delegateGetBlockByNumber(tx, b, number, true) + getBlockRes, err := delegateGetBlockByNumber(tx, b, number, true) if err != nil { return nil, err } diff --git a/turbo/jsonrpc/otterscan_block_details.go b/turbo/jsonrpc/otterscan_block_details.go index 0af04e02340..16401d5aa71 100644 --- a/turbo/jsonrpc/otterscan_block_details.go +++ b/turbo/jsonrpc/otterscan_block_details.go @@ -3,11 +3,13 @@ package jsonrpc import ( "context" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/kv" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core/rawdb" + "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/rpc" ) @@ -26,32 +28,9 @@ func (api *OtterscanAPIImpl) GetBlockDetails(ctx context.Context, number rpc.Blo return nil, nil } - chainConfig, err := api.chainConfig(tx) - if err != nil { - return nil, err - } - - getBlockRes, err := api.delegateGetBlockByNumber(tx, b, number, false) - if err != nil { - return nil, err - } - getIssuanceRes, err := api.delegateIssuance(tx, b, chainConfig) - if err != nil { - return nil, err - } - feesRes, err := api.delegateBlockFees(ctx, tx, b, senders, chainConfig) - if err != nil { - return nil, err - } - - response := map[string]interface{}{} - response["block"] = getBlockRes - response["issuance"] = getIssuanceRes - response["totalFees"] = hexutil.Uint64(feesRes) - return response, nil + return api.getBlockDetailsImpl(ctx, tx, b, number, senders) } -// TODO: remove duplication with GetBlockDetails func (api *OtterscanAPIImpl) GetBlockDetailsByHash(ctx context.Context, hash common.Hash) (map[string]interface{}, error) { tx, err := api.db.BeginRo(ctx) if err != nil { @@ -71,21 +50,30 @@ func (api *OtterscanAPIImpl) GetBlockDetailsByHash(ctx context.Context, hash com if b == nil { return nil, nil } + number := rpc.BlockNumber(b.Number().Int64()) + + return api.getBlockDetailsImpl(ctx, tx, b, number, senders) +} +func (api *OtterscanAPIImpl) getBlockDetailsImpl(ctx context.Context, tx kv.Tx, b *types.Block, number rpc.BlockNumber, senders []common.Address) (map[string]interface{}, error) { chainConfig, err := api.chainConfig(tx) if err != nil { return nil, err } - getBlockRes, err := api.delegateGetBlockByNumber(tx, b, rpc.BlockNumber(b.Number().Int64()), false) + getBlockRes, err := delegateGetBlockByNumber(tx, b, number, false) if err != nil { return nil, err } - getIssuanceRes, err := api.delegateIssuance(tx, b, chainConfig) + getIssuanceRes, err := delegateIssuance(tx, b, chainConfig) if err != nil { return nil, err } - feesRes, err := api.delegateBlockFees(ctx, tx, b, senders, chainConfig) + receipts, err := api.getReceipts(ctx, tx, chainConfig, b, senders) + if err != nil { + return nil, fmt.Errorf("getReceipts error: %v", err) + } + feesRes, err := delegateBlockFees(ctx, tx, b, senders, chainConfig, receipts) if err != nil { return nil, err } diff --git a/turbo/jsonrpc/otterscan_search_backward_test.go b/turbo/jsonrpc/otterscan_search_backward_test.go index 8be5f918313..4c07ca38efe 100644 --- a/turbo/jsonrpc/otterscan_search_backward_test.go +++ b/turbo/jsonrpc/otterscan_search_backward_test.go @@ -2,12 +2,12 @@ package jsonrpc import ( "bytes" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "testing" "github.com/RoaringBitmap/roaring/roaring64" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon/cmd/rpcdaemon/rpcdaemontest" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/stretchr/testify/require" ) diff --git a/turbo/jsonrpc/otterscan_trace_operations.go b/turbo/jsonrpc/otterscan_trace_operations.go index 6f09c8941a1..2d032b903d0 100644 --- a/turbo/jsonrpc/otterscan_trace_operations.go +++ b/turbo/jsonrpc/otterscan_trace_operations.go @@ -2,11 +2,11 @@ package jsonrpc import ( "context" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "github.com/holiman/uint256" "github.com/ledgerwatch/erigon-lib/common" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core/vm" ) diff --git a/turbo/jsonrpc/otterscan_trace_transaction.go b/turbo/jsonrpc/otterscan_trace_transaction.go index ce9b40405cf..37cb3fe3f40 100644 --- a/turbo/jsonrpc/otterscan_trace_transaction.go +++ b/turbo/jsonrpc/otterscan_trace_transaction.go @@ -2,6 +2,7 @@ package jsonrpc import ( "context" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "math/big" "github.com/holiman/uint256" @@ -9,7 +10,6 @@ import ( "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/hexutility" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core/vm" ) diff --git a/turbo/jsonrpc/parity_api.go b/turbo/jsonrpc/parity_api.go index 8cf5892405e..05744f3f42d 100644 --- a/turbo/jsonrpc/parity_api.go +++ b/turbo/jsonrpc/parity_api.go @@ -11,7 +11,6 @@ import ( "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/erigon-lib/kv/order" "github.com/ledgerwatch/erigon-lib/kv/rawdbv3" - "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/core/rawdb" "github.com/ledgerwatch/erigon/turbo/rpchelper" @@ -81,7 +80,7 @@ func (api *ParityAPIImpl) ListStorageKeys(ctx context.Context, account libcommon if err != nil { return nil, err } - keys = append(keys, common.CopyBytes(k[20:])) + keys = append(keys, libcommon.CopyBytes(k[20:])) } return keys, nil } diff --git a/turbo/jsonrpc/parity_api_test.go b/turbo/jsonrpc/parity_api_test.go index 857a617fa39..8a3f14780c1 100644 --- a/turbo/jsonrpc/parity_api_test.go +++ b/turbo/jsonrpc/parity_api_test.go @@ -54,7 +54,7 @@ func TestParityAPIImpl_ListStorageKeys_WithOffset_ExistingPrefix(t *testing.T) { "4974416255391052161ba8184fe652f3bf8c915592c65f7de127af8e637dce5d", } addr := libcommon.HexToAddress("0x920fd5070602feaea2e251e9e7238b6c376bcae5") - offset := common.Hex2Bytes("29") + offset := libcommon.Hex2Bytes("29") b := hexutility.Bytes(offset) result, err := api.ListStorageKeys(context.Background(), addr, 5, &b, latestBlock) if err != nil { @@ -75,7 +75,7 @@ func TestParityAPIImpl_ListStorageKeys_WithOffset_NonExistingPrefix(t *testing.T "4974416255391052161ba8184fe652f3bf8c915592c65f7de127af8e637dce5d", } addr := libcommon.HexToAddress("0x920fd5070602feaea2e251e9e7238b6c376bcae5") - offset := common.Hex2Bytes("30") + offset := libcommon.Hex2Bytes("30") b := hexutility.Bytes(offset) result, err := api.ListStorageKeys(context.Background(), addr, 2, &b, latestBlock) if err != nil { @@ -92,7 +92,7 @@ func TestParityAPIImpl_ListStorageKeys_WithOffset_EmptyResponse(t *testing.T) { m, _, _ := rpcdaemontest.CreateTestSentry(t) api := NewParityAPIImpl(newBaseApiForTest(m), m.DB) addr := libcommon.HexToAddress("0x920fd5070602feaea2e251e9e7238b6c376bcae5") - offset := common.Hex2Bytes("ff") + offset := libcommon.Hex2Bytes("ff") b := hexutility.Bytes(offset) result, err := api.ListStorageKeys(context.Background(), addr, 2, &b, latestBlock) if err != nil { diff --git a/turbo/jsonrpc/storage_range.go b/turbo/jsonrpc/storage_range.go index 12730522a1e..affd4381c15 100644 --- a/turbo/jsonrpc/storage_range.go +++ b/turbo/jsonrpc/storage_range.go @@ -7,7 +7,6 @@ import ( libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/erigon-lib/kv/order" - "github.com/ledgerwatch/erigon/common" ) // StorageRangeResult is the result of a debug_storageRangeAt API call. @@ -66,7 +65,7 @@ func storageRangeAtV3(ttx kv.TemporalTx, contractAddress libcommon.Address, star continue // Skip deleted entries } key := libcommon.BytesToHash(k[20:]) - seckey, err := common.HashData(k[20:]) + seckey, err := libcommon.HashData(k[20:]) if err != nil { return StorageRangeResult{}, err } diff --git a/turbo/jsonrpc/trace_adhoc.go b/turbo/jsonrpc/trace_adhoc.go index 95ca0b395e5..1bec461b03b 100644 --- a/turbo/jsonrpc/trace_adhoc.go +++ b/turbo/jsonrpc/trace_adhoc.go @@ -9,6 +9,8 @@ import ( "math/big" "strings" + "github.com/ledgerwatch/erigon-lib/common/hexutil" + "github.com/holiman/uint256" "github.com/ledgerwatch/log/v3" @@ -17,8 +19,6 @@ import ( "github.com/ledgerwatch/erigon-lib/kv" types2 "github.com/ledgerwatch/erigon-lib/types" - "github.com/ledgerwatch/erigon/common" - "github.com/ledgerwatch/erigon/common/hexutil" math2 "github.com/ledgerwatch/erigon/common/math" "github.com/ledgerwatch/erigon/core" "github.com/ledgerwatch/erigon/core/rawdb" @@ -328,7 +328,7 @@ func (ot *OeTracer) captureStartOrEnter(deep bool, typ vm.OpCode, from libcommon vmTrace = ot.r.VmTrace } if create { - vmTrace.Code = common.CopyBytes(input) + vmTrace.Code = libcommon.CopyBytes(input) if ot.lastVmOp != nil { ot.lastVmOp.Cost += int(gas) } @@ -377,7 +377,7 @@ func (ot *OeTracer) captureStartOrEnter(deep bool, typ vm.OpCode, from libcommon action := CreateTraceAction{} action.From = from action.Gas.ToInt().SetUint64(gas) - action.Init = common.CopyBytes(input) + action.Init = libcommon.CopyBytes(input) action.Value.ToInt().Set(value.ToBig()) trace.Action = &action } else if typ == vm.SELFDESTRUCT { @@ -403,7 +403,7 @@ func (ot *OeTracer) captureStartOrEnter(deep bool, typ vm.OpCode, from libcommon action.From = from action.To = to action.Gas.ToInt().SetUint64(gas) - action.Input = common.CopyBytes(input) + action.Input = libcommon.CopyBytes(input) action.Value.ToInt().Set(value.ToBig()) trace.Action = &action } @@ -440,7 +440,7 @@ func (ot *OeTracer) captureEndOrExit(deep bool, output []byte, usedGas uint64, e return } if !deep { - ot.r.Output = common.CopyBytes(output) + ot.r.Output = libcommon.CopyBytes(output) } ignoreError := false topTrace := ot.traceStack[len(ot.traceStack)-1] @@ -454,11 +454,11 @@ func (ot *OeTracer) captureEndOrExit(deep bool, output []byte, usedGas uint64, e case CALL: topTrace.Result.(*TraceResult).GasUsed = new(hexutil.Big) topTrace.Result.(*TraceResult).GasUsed.ToInt().SetUint64(usedGas) - topTrace.Result.(*TraceResult).Output = common.CopyBytes(output) + topTrace.Result.(*TraceResult).Output = libcommon.CopyBytes(output) case CREATE: topTrace.Result.(*CreateTraceResult).GasUsed = new(hexutil.Big) topTrace.Result.(*CreateTraceResult).GasUsed.ToInt().SetUint64(usedGas) - topTrace.Result.(*CreateTraceResult).Code = common.CopyBytes(output) + topTrace.Result.(*CreateTraceResult).Code = libcommon.CopyBytes(output) } } else { topTrace.Result = nil @@ -468,9 +468,9 @@ func (ot *OeTracer) captureEndOrExit(deep bool, output []byte, usedGas uint64, e if len(output) > 0 { switch topTrace.Type { case CALL: - topTrace.Result.(*TraceResult).Output = common.CopyBytes(output) + topTrace.Result.(*TraceResult).Output = libcommon.CopyBytes(output) case CREATE: - topTrace.Result.(*CreateTraceResult).Code = common.CopyBytes(output) + topTrace.Result.(*CreateTraceResult).Code = libcommon.CopyBytes(output) } } switch topTrace.Type { @@ -1087,7 +1087,7 @@ func (api *TraceAPIImpl) Call(ctx context.Context, args TraceCallParam, traceTyp return nil, err } ot.CaptureTxEnd(&types.Receipt{GasUsed: execResult.UsedGas}, nil) - traceResult.Output = common.CopyBytes(execResult.ReturnData) + traceResult.Output = libcommon.CopyBytes(execResult.ReturnData) if traceTypeStateDiff { sdMap := make(map[libcommon.Address]*StateDiffAccount) traceResult.StateDiff = sdMap @@ -1334,7 +1334,7 @@ func (api *TraceAPIImpl) doCallMany(ctx context.Context, dbtx kv.Tx, txns []type if tracer != nil { tracer.CaptureTxEnd(&types.Receipt{GasUsed: execResult.UsedGas}, nil) } - traceResult.Output = common.CopyBytes(execResult.ReturnData) + traceResult.Output = libcommon.CopyBytes(execResult.ReturnData) if traceTypeStateDiff { initialIbs := state.New(cloneReader) sdMap := make(map[libcommon.Address]*StateDiffAccount) diff --git a/turbo/jsonrpc/trace_adhoc_test.go b/turbo/jsonrpc/trace_adhoc_test.go index ad237f4a826..7e38a86d05f 100644 --- a/turbo/jsonrpc/trace_adhoc_test.go +++ b/turbo/jsonrpc/trace_adhoc_test.go @@ -3,6 +3,7 @@ package jsonrpc import ( "context" "encoding/json" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "testing" libcommon "github.com/ledgerwatch/erigon-lib/common" @@ -11,7 +12,6 @@ import ( "github.com/ledgerwatch/erigon/cmd/rpcdaemon/cli/httpcfg" "github.com/ledgerwatch/erigon/cmd/rpcdaemon/rpcdaemontest" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/rpc" ) diff --git a/turbo/jsonrpc/trace_api.go b/turbo/jsonrpc/trace_api.go index d5973ef227e..ac248e961ea 100644 --- a/turbo/jsonrpc/trace_api.go +++ b/turbo/jsonrpc/trace_api.go @@ -3,13 +3,13 @@ package jsonrpc import ( "context" "encoding/json" + "github.com/ledgerwatch/erigon-lib/common/hexutil" jsoniter "github.com/json-iterator/go" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/erigon/cmd/rpcdaemon/cli/httpcfg" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/rpc" ) diff --git a/turbo/jsonrpc/trace_filtering.go b/turbo/jsonrpc/trace_filtering.go index 8e7bc64b249..b004404f1d5 100644 --- a/turbo/jsonrpc/trace_filtering.go +++ b/turbo/jsonrpc/trace_filtering.go @@ -4,6 +4,7 @@ import ( "context" "errors" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "github.com/RoaringBitmap/roaring/roaring64" jsoniter "github.com/json-iterator/go" @@ -17,7 +18,6 @@ import ( "github.com/ledgerwatch/erigon-lib/kv/order" "github.com/ledgerwatch/erigon-lib/kv/rawdbv3" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/consensus" "github.com/ledgerwatch/erigon/consensus/ethash" "github.com/ledgerwatch/erigon/core" diff --git a/turbo/jsonrpc/trace_types.go b/turbo/jsonrpc/trace_types.go index 500087d77a1..7c79fbeaada 100644 --- a/turbo/jsonrpc/trace_types.go +++ b/turbo/jsonrpc/trace_types.go @@ -2,11 +2,11 @@ package jsonrpc import ( "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/hexutility" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core/types" ) diff --git a/turbo/jsonrpc/tracing.go b/turbo/jsonrpc/tracing.go index 9bef60b52dc..1b2a6cf5893 100644 --- a/turbo/jsonrpc/tracing.go +++ b/turbo/jsonrpc/tracing.go @@ -3,6 +3,7 @@ package jsonrpc import ( "context" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "math/big" "time" @@ -13,7 +14,6 @@ import ( "github.com/ledgerwatch/erigon/core/vm/evmtypes" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/common/math" "github.com/ledgerwatch/erigon/core" "github.com/ledgerwatch/erigon/core/rawdb" diff --git a/turbo/jsonrpc/txpool_api.go b/turbo/jsonrpc/txpool_api.go index c20fef68290..05663be4a88 100644 --- a/turbo/jsonrpc/txpool_api.go +++ b/turbo/jsonrpc/txpool_api.go @@ -3,13 +3,13 @@ package jsonrpc import ( "context" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/gointerfaces" proto_txpool "github.com/ledgerwatch/erigon-lib/gointerfaces/txpool" "github.com/ledgerwatch/erigon-lib/kv" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core/rawdb" "github.com/ledgerwatch/erigon/core/types" ) diff --git a/turbo/jsonrpc/txpool_api_test.go b/turbo/jsonrpc/txpool_api_test.go index a21d30a3231..205a7d72408 100644 --- a/turbo/jsonrpc/txpool_api_test.go +++ b/turbo/jsonrpc/txpool_api_test.go @@ -3,6 +3,7 @@ package jsonrpc import ( "bytes" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "testing" "github.com/holiman/uint256" @@ -13,7 +14,6 @@ import ( "github.com/stretchr/testify/require" "github.com/ledgerwatch/erigon/cmd/rpcdaemon/rpcdaemontest" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/params" diff --git a/turbo/node/node.go b/turbo/node/node.go index 704ff0e0764..c8cf85ed6a9 100644 --- a/turbo/node/node.go +++ b/turbo/node/node.go @@ -4,6 +4,7 @@ package node import ( "context" + "github.com/ledgerwatch/erigon-lib/chain/networkname" "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/log/v3" "github.com/urfave/cli/v2" @@ -15,7 +16,6 @@ import ( "github.com/ledgerwatch/erigon/node" "github.com/ledgerwatch/erigon/node/nodecfg" "github.com/ledgerwatch/erigon/params" - "github.com/ledgerwatch/erigon/params/networkname" erigoncli "github.com/ledgerwatch/erigon/turbo/cli" ) diff --git a/turbo/services/interfaces.go b/turbo/services/interfaces.go index 592006477d2..2b86e736f16 100644 --- a/turbo/services/interfaces.go +++ b/turbo/services/interfaces.go @@ -93,7 +93,7 @@ type BlockSnapshots interface { // BlockRetire - freezing blocks: moving old data from DB to snapshot files type BlockRetire interface { PruneAncientBlocks(tx kv.RwTx, limit int, includeBor bool) error - RetireBlocksInBackground(ctx context.Context, maxBlockNumInDB uint64, includeBor bool, lvl log.Lvl, seedNewSnapshots func(downloadRequest []DownloadRequest) error) + RetireBlocksInBackground(ctx context.Context, maxBlockNumInDB uint64, includeBor bool, lvl log.Lvl, seedNewSnapshots func(downloadRequest []DownloadRequest) error, onDelete func(l []string) error) HasNewFrozenFiles() bool BuildMissedIndicesIfNeed(ctx context.Context, logPrefix string, notifier DBEventNotifier, cc *chain.Config) error } diff --git a/turbo/shards/state_cache.go b/turbo/shards/state_cache.go index 2a5ab4cff41..86924418830 100644 --- a/turbo/shards/state_cache.go +++ b/turbo/shards/state_cache.go @@ -4,15 +4,13 @@ import ( "bytes" "container/heap" "fmt" + "github.com/ledgerwatch/erigon-lib/metrics" "unsafe" "github.com/c2h5oh/datasize" "github.com/google/btree" "github.com/holiman/uint256" libcommon "github.com/ledgerwatch/erigon-lib/common" - "github.com/ledgerwatch/erigon/metrics" - - "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/core/types/accounts" ) @@ -424,8 +422,8 @@ func (sc *StateCache) get(key btree.Item) (CacheItem, bool) { func (sc *StateCache) GetAccount(address []byte) (*accounts.Account, bool) { AccRead.Inc() var key AccountItem - h := common.NewHasher() - defer common.ReturnHasherToPool(h) + h := libcommon.NewHasher() + defer libcommon.ReturnHasherToPool(h) //nolint:errcheck h.Sha.Write(address) //nolint:errcheck @@ -453,8 +451,8 @@ func (sc *StateCache) HasAccountWithInPrefix(addrHashPrefix []byte) bool { // GetDeletedAccount attempts to retrieve the last version of account before it was deleted func (sc *StateCache) GetDeletedAccount(address []byte) *accounts.Account { key := &AccountItem{} - h := common.NewHasher() - defer common.ReturnHasherToPool(h) + h := libcommon.NewHasher() + defer libcommon.ReturnHasherToPool(h) //nolint:errcheck h.Sha.Write(address) //nolint:errcheck @@ -475,8 +473,8 @@ func (sc *StateCache) GetDeletedAccount(address []byte) *accounts.Account { func (sc *StateCache) GetStorage(address []byte, incarnation uint64, location []byte) ([]byte, bool) { StRead.Inc() var key StorageItem - h := common.NewHasher() - defer common.ReturnHasherToPool(h) + h := libcommon.NewHasher() + defer libcommon.ReturnHasherToPool(h) //nolint:errcheck h.Sha.Write(address) //nolint:errcheck @@ -500,8 +498,8 @@ func (sc *StateCache) GetStorage(address []byte, incarnation uint64, location [] // Second return value is true if such item is found func (sc *StateCache) GetCode(address []byte, incarnation uint64) ([]byte, bool) { var key CodeItem - h := common.NewHasher() - defer common.ReturnHasherToPool(h) + h := libcommon.NewHasher() + defer libcommon.ReturnHasherToPool(h) //nolint:errcheck h.Sha.Write(address) //nolint:errcheck @@ -554,8 +552,8 @@ func (sc *StateCache) readQueuesLen() (res int) { // SetAccountRead adds given account to the cache, marking it as a read (not written) func (sc *StateCache) SetAccountRead(address []byte, account *accounts.Account) { var ai AccountItem - h := common.NewHasher() - defer common.ReturnHasherToPool(h) + h := libcommon.NewHasher() + defer libcommon.ReturnHasherToPool(h) //nolint:errcheck h.Sha.Write(address) //nolint:errcheck @@ -603,8 +601,8 @@ func (sc *StateCache) GetStorageByHashedAddress(addrHash libcommon.Hash, incarna // SetAccountRead adds given account address to the cache, marking it as a absent func (sc *StateCache) SetAccountAbsent(address []byte) { var ai AccountItem - h := common.NewHasher() - defer common.ReturnHasherToPool(h) + h := libcommon.NewHasher() + defer libcommon.ReturnHasherToPool(h) //nolint:errcheck h.Sha.Write(address) //nolint:errcheck @@ -683,8 +681,8 @@ func (sc *StateCache) setWrite(item CacheItem, writeItem CacheWriteItem, del boo // SetAccountWrite adds given account to the cache, marking it as written (cannot be evicted) func (sc *StateCache) SetAccountWrite(address []byte, account *accounts.Account) { var ai AccountItem - h := common.NewHasher() - defer common.ReturnHasherToPool(h) + h := libcommon.NewHasher() + defer libcommon.ReturnHasherToPool(h) //nolint:errcheck h.Sha.Write(address) //nolint:errcheck @@ -699,8 +697,8 @@ func (sc *StateCache) SetAccountWrite(address []byte, account *accounts.Account) // SetAccountDelete is very similar to SetAccountWrite with the difference that there no set value func (sc *StateCache) SetAccountDelete(address []byte) { var ai AccountItem - h := common.NewHasher() - defer common.ReturnHasherToPool(h) + h := libcommon.NewHasher() + defer libcommon.ReturnHasherToPool(h) //nolint:errcheck h.Sha.Write(address) //nolint:errcheck @@ -713,8 +711,8 @@ func (sc *StateCache) SetAccountDelete(address []byte) { func (sc *StateCache) SetStorageRead(address []byte, incarnation uint64, location []byte, value []byte) { var si StorageItem - h := common.NewHasher() - defer common.ReturnHasherToPool(h) + h := libcommon.NewHasher() + defer libcommon.ReturnHasherToPool(h) //nolint:errcheck h.Sha.Write(address) //nolint:errcheck @@ -732,8 +730,8 @@ func (sc *StateCache) SetStorageRead(address []byte, incarnation uint64, locatio // hack to set hashed addr - we don't have another one in trie stage func (sc *StateCache) DeprecatedSetStorageRead(addrHash libcommon.Hash, incarnation uint64, locHash libcommon.Hash, val []byte) { var i StorageItem - h := common.NewHasher() - defer common.ReturnHasherToPool(h) + h := libcommon.NewHasher() + defer libcommon.ReturnHasherToPool(h) copy(i.addrHash[:], addrHash.Bytes()) i.incarnation = incarnation i.locHash.SetBytes(locHash.Bytes()) @@ -785,8 +783,8 @@ func (sc *StateCache) DeprecatedSetStorageWrite(addrHash libcommon.Hash, incarna func (sc *StateCache) SetStorageAbsent(address []byte, incarnation uint64, location []byte) { var si StorageItem - h := common.NewHasher() - defer common.ReturnHasherToPool(h) + h := libcommon.NewHasher() + defer libcommon.ReturnHasherToPool(h) //nolint:errcheck h.Sha.Write(address) //nolint:errcheck @@ -802,8 +800,8 @@ func (sc *StateCache) SetStorageAbsent(address []byte, incarnation uint64, locat func (sc *StateCache) SetStorageWrite(address []byte, incarnation uint64, location []byte, value []byte) { var si StorageItem - h := common.NewHasher() - defer common.ReturnHasherToPool(h) + h := libcommon.NewHasher() + defer libcommon.ReturnHasherToPool(h) //nolint:errcheck h.Sha.Write(address) //nolint:errcheck @@ -824,8 +822,8 @@ func (sc *StateCache) SetStorageWrite(address []byte, incarnation uint64, locati func (sc *StateCache) SetStorageDelete(address []byte, incarnation uint64, location []byte) { var si StorageItem - h := common.NewHasher() - defer common.ReturnHasherToPool(h) + h := libcommon.NewHasher() + defer libcommon.ReturnHasherToPool(h) //nolint:errcheck h.Sha.Write(address) //nolint:errcheck @@ -845,8 +843,8 @@ func (sc *StateCache) SetStorageDelete(address []byte, incarnation uint64, locat func (sc *StateCache) SetCodeRead(address []byte, incarnation uint64, code []byte) { var ci CodeItem - h := common.NewHasher() - defer common.ReturnHasherToPool(h) + h := libcommon.NewHasher() + defer libcommon.ReturnHasherToPool(h) //nolint:errcheck h.Sha.Write(address) //nolint:errcheck @@ -859,8 +857,8 @@ func (sc *StateCache) SetCodeRead(address []byte, incarnation uint64, code []byt func (sc *StateCache) SetCodeAbsent(address []byte, incarnation uint64) { var ci CodeItem - h := common.NewHasher() - defer common.ReturnHasherToPool(h) + h := libcommon.NewHasher() + defer libcommon.ReturnHasherToPool(h) //nolint:errcheck h.Sha.Write(address) //nolint:errcheck @@ -872,8 +870,8 @@ func (sc *StateCache) SetCodeAbsent(address []byte, incarnation uint64) { func (sc *StateCache) SetCodeWrite(address []byte, incarnation uint64, code []byte) { // Check if this is going to be modification of the existing entry var ci CodeItem - h := common.NewHasher() - defer common.ReturnHasherToPool(h) + h := libcommon.NewHasher() + defer libcommon.ReturnHasherToPool(h) //nolint:errcheck h.Sha.Write(address) //nolint:errcheck @@ -890,8 +888,8 @@ func (sc *StateCache) SetCodeWrite(address []byte, incarnation uint64, code []by func (sc *StateCache) SetCodeDelete(address []byte, incarnation uint64) { // Check if this is going to be modification of the existing entry var ci CodeItem - h := common.NewHasher() - defer common.ReturnHasherToPool(h) + h := libcommon.NewHasher() + defer libcommon.ReturnHasherToPool(h) //nolint:errcheck h.Sha.Write(address) //nolint:errcheck diff --git a/turbo/shards/trie_cache.go b/turbo/shards/trie_cache.go index ea995854aeb..fc359033f21 100644 --- a/turbo/shards/trie_cache.go +++ b/turbo/shards/trie_cache.go @@ -3,14 +3,13 @@ package shards import ( "bytes" "fmt" + "github.com/ledgerwatch/erigon-lib/kv/dbutils" "math/bits" "unsafe" "github.com/google/btree" libcommon "github.com/ledgerwatch/erigon-lib/common" - "github.com/ledgerwatch/erigon/common" - "github.com/ledgerwatch/erigon/common/dbutils" "github.com/ledgerwatch/erigon/core/types/accounts" ) @@ -216,7 +215,7 @@ func (sc *StateCache) SetAccountHashesRead(prefix []byte, hasState, hasTree, has cpy := make([]libcommon.Hash, len(hashes)) copy(cpy, hashes) ai := AccountHashItem{ - addrHashPrefix: common.CopyBytes(prefix), + addrHashPrefix: libcommon.CopyBytes(prefix), hasState: hasState, hasTree: hasTree, hasHash: hasHash, @@ -232,7 +231,7 @@ func (sc *StateCache) SetAccountHashWrite(prefix []byte, hasState, hasTree, hasH assertSubset(hasTree, hasState) assertSubset(hasHash, hasState) ai := AccountHashItem{ - addrHashPrefix: common.CopyBytes(prefix), + addrHashPrefix: libcommon.CopyBytes(prefix), hasState: hasState, hasTree: hasTree, hasHash: hasHash, @@ -258,7 +257,7 @@ func (sc *StateCache) SetStorageHashRead(addrHash libcommon.Hash, incarnation ui ai := StorageHashItem{ addrHash: addrHash, incarnation: incarnation, - locHashPrefix: common.CopyBytes(locHashPrefix), + locHashPrefix: libcommon.CopyBytes(locHashPrefix), hasState: hasState, hasTree: hasTree, hasHash: hasHash, @@ -273,7 +272,7 @@ func (sc *StateCache) SetStorageHashWrite(addrHash libcommon.Hash, incarnation u ai := StorageHashItem{ addrHash: addrHash, incarnation: incarnation, - locHashPrefix: common.CopyBytes(locHashPrefix), + locHashPrefix: libcommon.CopyBytes(locHashPrefix), hasState: hasState, hasTree: hasTree, hasHash: hasHash, @@ -290,7 +289,7 @@ func (sc *StateCache) SetStorageHashDelete(addrHash libcommon.Hash, incarnation ai := StorageHashItem{ addrHash: addrHash, incarnation: incarnation, - locHashPrefix: common.CopyBytes(locHashPrefix), + locHashPrefix: libcommon.CopyBytes(locHashPrefix), hasState: hasState, hasTree: hasTree, hasHash: hasHash, diff --git a/turbo/silkworm/load.go b/turbo/silkworm/load.go deleted file mode 100644 index 4ae890436f4..00000000000 --- a/turbo/silkworm/load.go +++ /dev/null @@ -1,19 +0,0 @@ -//go:build !linux -// +build !linux - -package silkworm - -import ( - "errors" - "unsafe" -) - -func OpenLibrary(dllPath string) (unsafe.Pointer, error) { - // See https://github.com/golang/go/issues/28024 - return nil, errors.New("Silkworm is only supported on Linux") -} - -func LoadFunction(dllHandle unsafe.Pointer, funcName string) (unsafe.Pointer, error) { - // See https://github.com/golang/go/issues/28024 - return nil, errors.New("Silkworm is only supported on Linux") -} diff --git a/turbo/silkworm/load_linux.go b/turbo/silkworm/load_unix.go similarity index 97% rename from turbo/silkworm/load_linux.go rename to turbo/silkworm/load_unix.go index 5f3113103da..11a22c74822 100644 --- a/turbo/silkworm/load_linux.go +++ b/turbo/silkworm/load_unix.go @@ -1,3 +1,5 @@ +//go:build unix + package silkworm /* diff --git a/turbo/silkworm/load_windows.go b/turbo/silkworm/load_windows.go new file mode 100644 index 00000000000..537411083c1 --- /dev/null +++ b/turbo/silkworm/load_windows.go @@ -0,0 +1,16 @@ +//go:build windows + +package silkworm + +import ( + "errors" + "unsafe" +) + +func OpenLibrary(dllPath string) (unsafe.Pointer, error) { + return nil, errors.New("not implemented") +} + +func LoadFunction(dllHandle unsafe.Pointer, funcName string) (unsafe.Pointer, error) { + return nil, errors.New("not implemented") +} diff --git a/turbo/silkworm/silkworm.go b/turbo/silkworm/silkworm.go index 51fec7888d3..d27e6a929c8 100644 --- a/turbo/silkworm/silkworm.go +++ b/turbo/silkworm/silkworm.go @@ -1,139 +1,28 @@ package silkworm /* -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// START silkworm_api.h: C API exported by Silkworm to be used in Erigon. -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -#ifndef SILKWORM_API_H_ -#define SILKWORM_API_H_ - -#include -#include -#include #include - -#if defined _MSC_VER -#define SILKWORM_EXPORT __declspec(dllexport) -#else -#define SILKWORM_EXPORT __attribute__((visibility("default"))) -#endif - -#if __cplusplus -#define SILKWORM_NOEXCEPT noexcept -#else -#define SILKWORM_NOEXCEPT -#endif - -#if __cplusplus -extern "C" { -#endif - -typedef struct MDBX_txn MDBX_txn; - -#define SILKWORM_OK 0 -#define SILKWORM_INTERNAL_ERROR 1 -#define SILKWORM_UNKNOWN_ERROR 2 -#define SILKWORM_INVALID_HANDLE 3 -#define SILKWORM_INVALID_PATH 4 -#define SILKWORM_INVALID_SNAPSHOT 5 -#define SILKWORM_INVALID_MDBX_TXN 6 -#define SILKWORM_INVALID_BLOCK_RANGE 7 -#define SILKWORM_BLOCK_NOT_FOUND 8 -#define SILKWORM_UNKNOWN_CHAIN_ID 9 -#define SILKWORM_MDBX_ERROR 10 -#define SILKWORM_INVALID_BLOCK 11 -#define SILKWORM_DECODING_ERROR 12 -#define SILKWORM_TOO_MANY_INSTANCES 13 -#define SILKWORM_INSTANCE_NOT_FOUND 14 -#define SILKWORM_TERMINATION_SIGNAL 15 - -typedef struct SilkwormHandle SilkwormHandle; - -SILKWORM_EXPORT int silkworm_init(SilkwormHandle** handle) SILKWORM_NOEXCEPT; - -struct SilkwormMemoryMappedFile { - const char* file_path; - uint8_t* memory_address; - uint64_t memory_length; -}; - -struct SilkwormHeadersSnapshot { - struct SilkwormMemoryMappedFile segment; - struct SilkwormMemoryMappedFile header_hash_index; -}; - -struct SilkwormBodiesSnapshot { - struct SilkwormMemoryMappedFile segment; - struct SilkwormMemoryMappedFile block_num_index; -}; - -struct SilkwormTransactionsSnapshot { - struct SilkwormMemoryMappedFile segment; - struct SilkwormMemoryMappedFile tx_hash_index; - struct SilkwormMemoryMappedFile tx_hash_2_block_index; -}; - -struct SilkwormChainSnapshot { - struct SilkwormHeadersSnapshot headers; - struct SilkwormBodiesSnapshot bodies; - struct SilkwormTransactionsSnapshot transactions; -}; - -SILKWORM_EXPORT int silkworm_add_snapshot(SilkwormHandle* handle, struct SilkwormChainSnapshot* snapshot) SILKWORM_NOEXCEPT; - -SILKWORM_EXPORT int silkworm_execute_blocks( - SilkwormHandle* handle, MDBX_txn* txn, uint64_t chain_id, uint64_t start_block, uint64_t max_block, - uint64_t batch_size, bool write_change_sets, bool write_receipts, bool write_call_traces, - uint64_t* last_executed_block, int* mdbx_error_code) SILKWORM_NOEXCEPT; - -SILKWORM_EXPORT int silkworm_fini(SilkwormHandle* handle) SILKWORM_NOEXCEPT; - -#if __cplusplus -} -#endif - -#endif // SILKWORM_API_H_ - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// END silkworm_api.h: C API exported by Silkworm to be used in Erigon. -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -typedef int (*silkworm_init_func)(SilkwormHandle** handle); - -int call_silkworm_init_func(void* func_ptr, SilkwormHandle** handle) { - return ((silkworm_init_func)func_ptr)(handle); -} - -typedef int (*silkworm_add_snapshot_func)(SilkwormHandle* handle, struct SilkwormChainSnapshot* snapshot); - -int call_silkworm_add_snapshot_func(void* func_ptr, SilkwormHandle* handle, struct SilkwormChainSnapshot* snapshot) { - return ((silkworm_add_snapshot_func)func_ptr)(handle, snapshot); -} - -typedef int (*silkworm_execute_blocks_func)(SilkwormHandle* handle, MDBX_txn* txn, uint64_t chain_id, uint64_t start_block, - uint64_t max_block, uint64_t batch_size, bool write_change_sets, bool write_receipts, bool write_call_traces, - uint64_t* last_executed_block, int* mdbx_error_code); - -int call_silkworm_execute_blocks_func(void* func_ptr, SilkwormHandle* handle, MDBX_txn* txn, uint64_t chain_id, uint64_t start_block, - uint64_t max_block, uint64_t batch_size, bool write_change_sets, bool write_receipts, bool write_call_traces, - uint64_t* last_executed_block, int* mdbx_error_code) { - return ((silkworm_execute_blocks_func)func_ptr)(handle, txn, chain_id, start_block, max_block, batch_size, write_change_sets, - write_receipts, write_call_traces, last_executed_block, mdbx_error_code); -} - -typedef int (*silkworm_fini_func)(SilkwormHandle* handle); - -int call_silkworm_fini_func(void* func_ptr, SilkwormHandle* handle) { - return ((silkworm_fini_func)func_ptr)(handle); +#include +#include "silkworm_api_bridge.h" + +static bool go_string_copy(_GoString_ s, char *dest, size_t size) { + size_t len = _GoStringLen(s); + if (len >= size) return false; + const char *src = _GoStringPtr(s); + strncpy(dest, src, len); + dest[len] = '\0'; + return true; } */ import "C" + import ( "errors" "fmt" "math/big" + "runtime" "unsafe" "github.com/ledgerwatch/erigon-lib/kv" @@ -141,37 +30,42 @@ import ( ) const ( - SILKWORM_OK = iota - SILKWORM_INTERNAL_ERROR - SILKWORM_UNKNOWN_ERROR - SILKWORM_INVALID_HANDLE - SILKWORM_INVALID_PATH - SILKWORM_INVALID_SNAPSHOT - SILKWORM_INVALID_MDBX_TXN - SILKWORM_INVALID_BLOCK_RANGE - SILKWORM_BLOCK_NOT_FOUND - SILKWORM_UNKNOWN_CHAIN_ID - SILKWORM_MDBX_ERROR - SILKWORM_INVALID_BLOCK - SILKWORM_DECODING_ERROR - SILKWORM_TOO_MANY_INSTANCES - SILKWORM_INSTANCE_NOT_FOUND - SILKWORM_TERMINATION_SIGNAL + SILKWORM_OK = C.SILKWORM_OK + SILKWORM_INTERNAL_ERROR = C.SILKWORM_INTERNAL_ERROR + SILKWORM_UNKNOWN_ERROR = C.SILKWORM_UNKNOWN_ERROR + SILKWORM_INVALID_HANDLE = C.SILKWORM_INVALID_HANDLE + SILKWORM_INVALID_PATH = C.SILKWORM_INVALID_PATH + SILKWORM_INVALID_SNAPSHOT = C.SILKWORM_INVALID_SNAPSHOT + SILKWORM_INVALID_MDBX_TXN = C.SILKWORM_INVALID_MDBX_TXN + SILKWORM_INVALID_BLOCK_RANGE = C.SILKWORM_INVALID_BLOCK_RANGE + SILKWORM_BLOCK_NOT_FOUND = C.SILKWORM_BLOCK_NOT_FOUND + SILKWORM_UNKNOWN_CHAIN_ID = C.SILKWORM_UNKNOWN_CHAIN_ID + SILKWORM_MDBX_ERROR = C.SILKWORM_MDBX_ERROR + SILKWORM_INVALID_BLOCK = C.SILKWORM_INVALID_BLOCK + SILKWORM_DECODING_ERROR = C.SILKWORM_DECODING_ERROR + SILKWORM_TOO_MANY_INSTANCES = C.SILKWORM_TOO_MANY_INSTANCES + SILKWORM_INVALID_SETTINGS = C.SILKWORM_INVALID_SETTINGS + SILKWORM_TERMINATION_SIGNAL = C.SILKWORM_TERMINATION_SIGNAL + SILKWORM_SERVICE_ALREADY_STARTED = C.SILKWORM_SERVICE_ALREADY_STARTED ) // ErrInterrupted is the error returned by Silkworm APIs when stopped by any termination signal. var ErrInterrupted = errors.New("interrupted") type Silkworm struct { - dllHandle unsafe.Pointer - instance *C.SilkwormHandle - initFunc unsafe.Pointer - finiFunc unsafe.Pointer - addSnapshot unsafe.Pointer - executeBlocks unsafe.Pointer + dllHandle unsafe.Pointer + instance *C.SilkwormHandle + initFunc unsafe.Pointer + finiFunc unsafe.Pointer + addSnapshot unsafe.Pointer + startRpcDaemon unsafe.Pointer + stopRpcDaemon unsafe.Pointer + sentryStart unsafe.Pointer + sentryStop unsafe.Pointer + executeBlocks unsafe.Pointer } -func New(dllPath string) (*Silkworm, error) { +func New(dllPath string, dataDirPath string) (*Silkworm, error) { dllHandle, err := OpenLibrary(dllPath) if err != nil { return nil, fmt.Errorf("failed to load silkworm library from path %s: %w", dllPath, err) @@ -189,19 +83,47 @@ func New(dllPath string) (*Silkworm, error) { if err != nil { return nil, fmt.Errorf("failed to load silkworm function silkworm_add_snapshot: %w", err) } + startRpcDaemon, err := LoadFunction(dllHandle, "silkworm_start_rpcdaemon") + if err != nil { + return nil, fmt.Errorf("failed to load silkworm function silkworm_start_rpcdaemon: %w", err) + } + stopRpcDaemon, err := LoadFunction(dllHandle, "silkworm_stop_rpcdaemon") + if err != nil { + return nil, fmt.Errorf("failed to load silkworm function silkworm_stop_rpcdaemon: %w", err) + } + sentryStart, err := LoadFunction(dllHandle, "silkworm_sentry_start") + if err != nil { + return nil, fmt.Errorf("failed to load silkworm function silkworm_sentry_start: %w", err) + } + sentryStop, err := LoadFunction(dllHandle, "silkworm_sentry_stop") + if err != nil { + return nil, fmt.Errorf("failed to load silkworm function silkworm_sentry_stop: %w", err) + } executeBlocks, err := LoadFunction(dllHandle, "silkworm_execute_blocks") if err != nil { return nil, fmt.Errorf("failed to load silkworm function silkworm_execute_blocks: %w", err) } silkworm := &Silkworm{ - dllHandle: dllHandle, - initFunc: initFunc, - finiFunc: finiFunc, - addSnapshot: addSnapshot, - executeBlocks: executeBlocks, + dllHandle: dllHandle, + instance: nil, + initFunc: initFunc, + finiFunc: finiFunc, + addSnapshot: addSnapshot, + startRpcDaemon: startRpcDaemon, + stopRpcDaemon: stopRpcDaemon, + sentryStart: sentryStart, + sentryStop: sentryStop, + executeBlocks: executeBlocks, + } + + settings := &C.struct_SilkwormSettings{} + + if !C.go_string_copy(dataDirPath, &settings.data_dir_path[0], C.SILKWORM_PATH_SIZE) { + return nil, errors.New("silkworm.New failed to copy dataDirPath") } - status := C.call_silkworm_init_func(silkworm.initFunc, &silkworm.instance) //nolint:gocritic + + status := C.call_silkworm_init_func(silkworm.initFunc, &silkworm.instance, settings) //nolint:gocritic if status == SILKWORM_OK { return silkworm, nil } @@ -285,7 +207,148 @@ func (s *Silkworm) AddSnapshot(snapshot *MappedChainSnapshot) error { return fmt.Errorf("silkworm_add_snapshot error %d", status) } +func (s *Silkworm) StartRpcDaemon(db kv.RoDB) error { + cEnv := (*C.MDBX_env)(db.CHandle()) + status := C.call_silkworm_start_rpcdaemon_func(s.startRpcDaemon, s.instance, cEnv) + // Handle successful execution + if status == SILKWORM_OK { + return nil + } + return fmt.Errorf("silkworm_start_rpcdaemon error %d", status) +} + +func (s *Silkworm) StopRpcDaemon() error { + status := C.call_silkworm_stop_rpcdaemon_func(s.stopRpcDaemon, s.instance) + // Handle successful execution + if status == SILKWORM_OK { + return nil + } + return fmt.Errorf("silkworm_stop_rpcdaemon error %d", status) +} + +type RpcDaemonService struct { + silkworm *Silkworm + db kv.RoDB +} + +func (s *Silkworm) NewRpcDaemonService(db kv.RoDB) RpcDaemonService { + return RpcDaemonService{ + silkworm: s, + db: db, + } +} + +func (service RpcDaemonService) Start() error { + return service.silkworm.StartRpcDaemon(service.db) +} + +func (service RpcDaemonService) Stop() error { + return service.silkworm.StopRpcDaemon() +} + +type SentrySettings struct { + ClientId string + ApiPort int + Port int + Nat string + NetworkId uint64 + NodeKey []byte + StaticPeers []string + Bootnodes []string + NoDiscover bool + MaxPeers int +} + +func copyPeerURLs(list []string, cList *[C.SILKWORM_SENTRY_SETTINGS_PEERS_MAX][C.SILKWORM_SENTRY_SETTINGS_PEER_URL_SIZE]C.char) error { + listLen := len(list) + if listLen > C.SILKWORM_SENTRY_SETTINGS_PEERS_MAX { + return errors.New("copyPeerURLs: peers URL list has too many items") + } + // mark the list end with an empty string + if listLen < C.SILKWORM_SENTRY_SETTINGS_PEERS_MAX { + cList[listLen][0] = 0 + } + for i, url := range list { + if !C.go_string_copy(url, &cList[i][0], C.SILKWORM_SENTRY_SETTINGS_PEER_URL_SIZE) { + return fmt.Errorf("copyPeerURLs: failed to copy peer URL %d", i) + } + } + return nil +} + +func makeCSentrySettings(settings SentrySettings) (*C.struct_SilkwormSentrySettings, error) { + cSettings := &C.struct_SilkwormSentrySettings{ + api_port: C.uint16_t(settings.ApiPort), + port: C.uint16_t(settings.Port), + network_id: C.uint64_t(settings.NetworkId), + no_discover: C.bool(settings.NoDiscover), + max_peers: C.size_t(settings.MaxPeers), + } + if !C.go_string_copy(settings.ClientId, &cSettings.client_id[0], C.SILKWORM_SENTRY_SETTINGS_CLIENT_ID_SIZE) { + return nil, errors.New("makeCSentrySettings failed to copy ClientId") + } + if !C.go_string_copy(settings.Nat, &cSettings.nat[0], C.SILKWORM_SENTRY_SETTINGS_NAT_SIZE) { + return nil, errors.New("makeCSentrySettings failed to copy Nat") + } + if len(settings.NodeKey) == C.SILKWORM_SENTRY_SETTINGS_NODE_KEY_SIZE { + C.memcpy(unsafe.Pointer(&cSettings.node_key[0]), unsafe.Pointer(&settings.NodeKey[0]), C.SILKWORM_SENTRY_SETTINGS_NODE_KEY_SIZE) //nolint:gocritic + } else { + return nil, errors.New("makeCSentrySettings failed to copy NodeKey") + } + if err := copyPeerURLs(settings.StaticPeers, &cSettings.static_peers); err != nil { + return nil, fmt.Errorf("copyPeerURLs failed to copy StaticPeers: %w", err) + } + if err := copyPeerURLs(settings.Bootnodes, &cSettings.bootnodes); err != nil { + return nil, fmt.Errorf("copyPeerURLs failed to copy Bootnodes: %w", err) + } + return cSettings, nil +} + +func (s *Silkworm) SentryStart(settings SentrySettings) error { + cSettings, err := makeCSentrySettings(settings) + if err != nil { + return err + } + status := C.call_silkworm_sentry_start_func(s.sentryStart, s.instance, cSettings) + if status == SILKWORM_OK { + return nil + } + return fmt.Errorf("silkworm_sentry_start error %d", status) +} + +func (s *Silkworm) SentryStop() error { + status := C.call_silkworm_stop_rpcdaemon_func(s.sentryStop, s.instance) + if status == SILKWORM_OK { + return nil + } + return fmt.Errorf("silkworm_sentry_stop error %d", status) +} + +type SentryService struct { + silkworm *Silkworm + settings SentrySettings +} + +func (s *Silkworm) NewSentryService(settings SentrySettings) SentryService { + return SentryService{ + silkworm: s, + settings: settings, + } +} + +func (service SentryService) Start() error { + return service.silkworm.SentryStart(service.settings) +} + +func (service SentryService) Stop() error { + return service.silkworm.SentryStop() +} + func (s *Silkworm) ExecuteBlocks(txn kv.Tx, chainID *big.Int, startBlock uint64, maxBlock uint64, batchSize uint64, writeChangeSets, writeReceipts, writeCallTraces bool) (lastExecutedBlock uint64, err error) { + if runtime.GOOS == "darwin" { + return 0, errors.New("silkworm execution is incompatible with Go runtime on macOS due to stack size mismatch (see https://github.com/golang/go/issues/28024)") + } + cTxn := (*C.MDBX_txn)(txn.CHandle()) cChainId := C.uint64_t(chainID.Uint64()) cStartBlock := C.uint64_t(startBlock) @@ -303,7 +366,7 @@ func (s *Silkworm) ExecuteBlocks(txn kv.Tx, chainID *big.Int, startBlock uint64, if status == SILKWORM_OK { return lastExecutedBlock, nil } - // Handle special erros + // Handle special errors if status == SILKWORM_INVALID_BLOCK { return lastExecutedBlock, consensus.ErrInvalidBlock } diff --git a/turbo/silkworm/silkworm_api.h b/turbo/silkworm/silkworm_api.h new file mode 100644 index 00000000000..91ea519551b --- /dev/null +++ b/turbo/silkworm/silkworm_api.h @@ -0,0 +1,206 @@ +/* + Copyright 2023 The Silkworm Authors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#ifndef SILKWORM_API_H_ +#define SILKWORM_API_H_ + +// C API exported by Silkworm to be used in Erigon. + +#include // NOLINT(*-deprecated-headers) +#include // NOLINT(*-deprecated-headers) +#include // NOLINT(*-deprecated-headers) + +#if defined _MSC_VER +#define SILKWORM_EXPORT __declspec(dllexport) +#else +#define SILKWORM_EXPORT __attribute__((visibility("default"))) +#endif + +#if __cplusplus +#define SILKWORM_NOEXCEPT noexcept +#else +#define SILKWORM_NOEXCEPT +#endif + +#if __cplusplus +extern "C" { +#endif + +// Silkworm library error codes (SILKWORM_OK indicates no error, i.e. success) + +#define SILKWORM_OK 0 +#define SILKWORM_INTERNAL_ERROR 1 +#define SILKWORM_UNKNOWN_ERROR 2 +#define SILKWORM_INVALID_HANDLE 3 +#define SILKWORM_INVALID_PATH 4 +#define SILKWORM_INVALID_SNAPSHOT 5 +#define SILKWORM_INVALID_MDBX_TXN 6 +#define SILKWORM_INVALID_BLOCK_RANGE 7 +#define SILKWORM_BLOCK_NOT_FOUND 8 +#define SILKWORM_UNKNOWN_CHAIN_ID 9 +#define SILKWORM_MDBX_ERROR 10 +#define SILKWORM_INVALID_BLOCK 11 +#define SILKWORM_DECODING_ERROR 12 +#define SILKWORM_TOO_MANY_INSTANCES 13 +#define SILKWORM_INVALID_SETTINGS 14 +#define SILKWORM_TERMINATION_SIGNAL 15 +#define SILKWORM_SERVICE_ALREADY_STARTED 16 + +typedef struct MDBX_env MDBX_env; +typedef struct MDBX_txn MDBX_txn; +typedef struct SilkwormHandle SilkwormHandle; + +struct SilkwormMemoryMappedFile { + const char* file_path; + uint8_t* memory_address; + uint64_t memory_length; +}; + +struct SilkwormHeadersSnapshot { + struct SilkwormMemoryMappedFile segment; + struct SilkwormMemoryMappedFile header_hash_index; +}; + +struct SilkwormBodiesSnapshot { + struct SilkwormMemoryMappedFile segment; + struct SilkwormMemoryMappedFile block_num_index; +}; + +struct SilkwormTransactionsSnapshot { + struct SilkwormMemoryMappedFile segment; + struct SilkwormMemoryMappedFile tx_hash_index; + struct SilkwormMemoryMappedFile tx_hash_2_block_index; +}; + +struct SilkwormChainSnapshot { + struct SilkwormHeadersSnapshot headers; + struct SilkwormBodiesSnapshot bodies; + struct SilkwormTransactionsSnapshot transactions; +}; + +#define SILKWORM_PATH_SIZE 260 + +struct SilkwormSettings { + //! Data directory path in UTF-8. + char data_dir_path[SILKWORM_PATH_SIZE]; +}; + +/** + * \brief Initialize the Silkworm C API library. + * \param[in,out] handle Silkworm instance handle returned on successful initialization. + * \param[in] settings General Silkworm settings. + * \return SILKWORM_OK (=0) on success, a non-zero error value on failure. + */ +SILKWORM_EXPORT int silkworm_init( + SilkwormHandle** handle, + const struct SilkwormSettings* settings) SILKWORM_NOEXCEPT; + +/** + * \brief Build a set of indexes for the given snapshots. + * \param[in] handle A valid Silkworm instance handle, got with silkworm_init. + * \param[in] snapshots An array of snapshots to index. + * \param[in] indexPaths An array of paths to write indexes to. + * Note that the name of the index is a part of the path and it is used to determine the index type. + * \param[in] len The number of snapshots and paths. + * \return SILKWORM_OK (=0) on success, a non-zero error value on failure on some or all indexes. + */ +SILKWORM_EXPORT int silkworm_build_recsplit_indexes(SilkwormHandle* handle, struct SilkwormMemoryMappedFile* snapshots[], int len) SILKWORM_NOEXCEPT; + +/** + * \brief Notify Silkworm about a new snapshot to use. + * \param[in] handle A valid Silkworm instance handle, got with silkworm_init. + * \param[in] snapshot A snapshot to use. + * \return SILKWORM_OK (=0) on success, a non-zero error value on failure. + */ +SILKWORM_EXPORT int silkworm_add_snapshot(SilkwormHandle* handle, struct SilkwormChainSnapshot* snapshot) SILKWORM_NOEXCEPT; + +/** + * \brief Start Silkworm RPC daemon. + * \param[in] handle A valid Silkworm instance handle, got with silkworm_init.Must not be zero. + * \param[in] env An valid MDBX environment. Must not be zero. + * \return SILKWORM_OK (=0) on success, a non-zero error value on failure. + */ +SILKWORM_EXPORT int silkworm_start_rpcdaemon(SilkwormHandle* handle, MDBX_env* env) SILKWORM_NOEXCEPT; + +/** + * \brief Stop Silkworm RPC daemon and wait for its termination. + * \param[in] handle A valid Silkworm instance handle, got with silkworm_init. Must not be zero. + * \param[in] snapshot A snapshot to use. + * \return SILKWORM_OK (=0) on success, a non-zero error value on failure. + */ +SILKWORM_EXPORT int silkworm_stop_rpcdaemon(SilkwormHandle* handle) SILKWORM_NOEXCEPT; + +#define SILKWORM_SENTRY_SETTINGS_CLIENT_ID_SIZE 128 +#define SILKWORM_SENTRY_SETTINGS_NAT_SIZE 50 +#define SILKWORM_SENTRY_SETTINGS_NODE_KEY_SIZE 32 +#define SILKWORM_SENTRY_SETTINGS_PEERS_MAX 128 +#define SILKWORM_SENTRY_SETTINGS_PEER_URL_SIZE 200 + +struct SilkwormSentrySettings { + char client_id[SILKWORM_SENTRY_SETTINGS_CLIENT_ID_SIZE]; + uint16_t api_port; + uint16_t port; + char nat[SILKWORM_SENTRY_SETTINGS_NAT_SIZE]; + uint64_t network_id; + uint8_t node_key[SILKWORM_SENTRY_SETTINGS_NODE_KEY_SIZE]; + char static_peers[SILKWORM_SENTRY_SETTINGS_PEERS_MAX][SILKWORM_SENTRY_SETTINGS_PEER_URL_SIZE]; + char bootnodes[SILKWORM_SENTRY_SETTINGS_PEERS_MAX][SILKWORM_SENTRY_SETTINGS_PEER_URL_SIZE]; + bool no_discover; + size_t max_peers; +}; + +SILKWORM_EXPORT int silkworm_sentry_start(SilkwormHandle* handle, const struct SilkwormSentrySettings* settings) SILKWORM_NOEXCEPT; +SILKWORM_EXPORT int silkworm_sentry_stop(SilkwormHandle* handle) SILKWORM_NOEXCEPT; + +/** + * \brief Execute a batch of blocks and write resulting changes into the database. + * \param[in] handle A valid Silkworm instance handle, got with silkworm_init. + * \param[in] txn A valid read-write MDBX transaction. Must not be zero. + * This function does not commit nor abort the transaction. + * \param[in] chain_id EIP-155 chain ID. SILKWORM_UNKNOWN_CHAIN_ID is returned in case of an unknown or unsupported chain. + * \param[in] start_block The block height to start the execution from. + * \param[in] max_block Do not execute after this block. + * max_block may be executed, or the execution may stop earlier if the batch is full. + * \param[in] batch_size The size of DB changes to accumulate before returning from this method. + * Pass 0 if you want to execute just 1 block. + * \param[in] write_change_sets Whether to write state changes into the DB. + * \param[in] write_receipts Whether to write CBOR-encoded receipts into the DB. + * \param[in] write_call_traces Whether to write call traces into the DB. + * \param[out] last_executed_block The height of the last successfully executed block. + * Not written to if no blocks were executed, otherwise *last_executed_block ≤ max_block. + * \param[out] mdbx_error_code If an MDBX error occurs (this function returns kSilkwormMdbxError) + * and mdbx_error_code isn't NULL, it's populated with the relevant MDBX error code. + * \return SILKWORM_OK (=0) on success, a non-zero error value on failure. + * SILKWORM_BLOCK_NOT_FOUND is probably OK: it simply means that the execution reached the end of the chain + * (blocks up to and incl. last_executed_block were still executed). + */ +SILKWORM_EXPORT int silkworm_execute_blocks( + SilkwormHandle* handle, MDBX_txn* txn, uint64_t chain_id, uint64_t start_block, uint64_t max_block, + uint64_t batch_size, bool write_change_sets, bool write_receipts, bool write_call_traces, + uint64_t* last_executed_block, int* mdbx_error_code) SILKWORM_NOEXCEPT; + +/** + * \brief Finalize the Silkworm C API library. + * \param[in] handle A valid Silkworm instance handle got with silkworm_init. + * \return SILKWORM_OK (=0) on success, a non-zero error value on failure. + */ +SILKWORM_EXPORT int silkworm_fini(SilkwormHandle* handle) SILKWORM_NOEXCEPT; + +#if __cplusplus +} +#endif + +#endif // SILKWORM_API_H_ diff --git a/turbo/silkworm/silkworm_api_bridge.h b/turbo/silkworm/silkworm_api_bridge.h new file mode 100644 index 00000000000..2969ca62e6f --- /dev/null +++ b/turbo/silkworm/silkworm_api_bridge.h @@ -0,0 +1,75 @@ +/* + Copyright 2023 The Silkworm Authors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#ifndef SILKWORM_API_FUNC_H_ +#define SILKWORM_API_FUNC_H_ + +#include "silkworm_api.h" + +typedef int (*silkworm_init_func)(SilkwormHandle** handle, const struct SilkwormSettings* settings); + +int call_silkworm_init_func(void* func_ptr, SilkwormHandle** handle, const struct SilkwormSettings* settings) { + return ((silkworm_init_func)func_ptr)(handle, settings); +} + +typedef int (*silkworm_add_snapshot_func)(SilkwormHandle* handle, struct SilkwormChainSnapshot* snapshot); + +int call_silkworm_add_snapshot_func(void* func_ptr, SilkwormHandle* handle, struct SilkwormChainSnapshot* snapshot) { + return ((silkworm_add_snapshot_func)func_ptr)(handle, snapshot); +} + +typedef int (*silkworm_start_rpcdaemon_func)(SilkwormHandle* handle, MDBX_env* env); + +int call_silkworm_start_rpcdaemon_func(void* func_ptr, SilkwormHandle* handle, MDBX_env* env) { + return ((silkworm_start_rpcdaemon_func)func_ptr)(handle, env); +} + +typedef int (*silkworm_stop_rpcdaemon_func)(SilkwormHandle* handle); + +int call_silkworm_stop_rpcdaemon_func(void* func_ptr, SilkwormHandle* handle) { + return ((silkworm_stop_rpcdaemon_func)func_ptr)(handle); +} + +typedef int (*silkworm_sentry_start_func)(SilkwormHandle* handle, const struct SilkwormSentrySettings* settings); + +int call_silkworm_sentry_start_func(void* func_ptr, SilkwormHandle* handle, const struct SilkwormSentrySettings* settings) { + return ((silkworm_sentry_start_func)func_ptr)(handle, settings); +} + +typedef int (*silkworm_sentry_stop_func)(SilkwormHandle* handle); + +int call_silkworm_sentry_stop_func(void* func_ptr, SilkwormHandle* handle) { + return ((silkworm_sentry_stop_func)func_ptr)(handle); +} + +typedef int (*silkworm_execute_blocks_func)(SilkwormHandle* handle, MDBX_txn* txn, uint64_t chain_id, uint64_t start_block, + uint64_t max_block, uint64_t batch_size, bool write_change_sets, bool write_receipts, bool write_call_traces, + uint64_t* last_executed_block, int* mdbx_error_code); + +int call_silkworm_execute_blocks_func(void* func_ptr, SilkwormHandle* handle, MDBX_txn* txn, uint64_t chain_id, uint64_t start_block, + uint64_t max_block, uint64_t batch_size, bool write_change_sets, bool write_receipts, bool write_call_traces, + uint64_t* last_executed_block, int* mdbx_error_code) { + return ((silkworm_execute_blocks_func)func_ptr)(handle, txn, chain_id, start_block, max_block, batch_size, write_change_sets, + write_receipts, write_call_traces, last_executed_block, mdbx_error_code); +} + +typedef int (*silkworm_fini_func)(SilkwormHandle* handle); + +int call_silkworm_fini_func(void* func_ptr, SilkwormHandle* handle) { + return ((silkworm_fini_func)func_ptr)(handle); +} + +#endif // SILKWORM_API_FUNC_H_ diff --git a/turbo/snapshotsync/freezeblocks/beacon_block_reader.go b/turbo/snapshotsync/freezeblocks/beacon_block_reader.go new file mode 100644 index 00000000000..4f815791b1e --- /dev/null +++ b/turbo/snapshotsync/freezeblocks/beacon_block_reader.go @@ -0,0 +1,92 @@ +package freezeblocks + +import ( + "bytes" + "sync" + + "github.com/ledgerwatch/erigon/cl/clparams" + "github.com/ledgerwatch/erigon/cl/cltypes" + "github.com/ledgerwatch/erigon/cl/persistence/format/snapshot_format" + "github.com/pierrec/lz4" +) + +var buffersPool = sync.Pool{ + New: func() interface{} { return &bytes.Buffer{} }, +} + +var lz4ReaderPool = sync.Pool{ + New: func() interface{} { + return lz4.NewReader(nil) + }, +} + +type BeaconSnapshotReader interface { + // ReadBlock reads the block at the given slot. + // If the block is not present, it returns nil. + ReadBlock(slot uint64) (*cltypes.SignedBeaconBlock, error) + RawBlockSSZ(slot uint64) ([]byte, error) + + FrozenSlots() uint64 +} + +type beaconSnapshotReader struct { + sn *CaplinSnapshots + + eth1Getter snapshot_format.ExecutionBlockReaderByNumber + cfg *clparams.BeaconChainConfig +} + +func NewBeaconSnapshotReader(snapshots *CaplinSnapshots, eth1Getter snapshot_format.ExecutionBlockReaderByNumber, cfg *clparams.BeaconChainConfig) BeaconSnapshotReader { + return &beaconSnapshotReader{sn: snapshots, eth1Getter: eth1Getter, cfg: cfg} +} + +func (r *beaconSnapshotReader) FrozenSlots() uint64 { + return r.sn.BlocksAvailable() +} + +func (r *beaconSnapshotReader) ReadBlock(slot uint64) (*cltypes.SignedBeaconBlock, error) { + buf, err := r.RawBlockSSZ(slot) + if err != nil { + return nil, err + } + if buf == nil { + return nil, nil + } + + // Use pooled buffers and readers to avoid allocations. + buffer := buffersPool.Get().(*bytes.Buffer) + defer buffersPool.Put(buffer) + buffer.Reset() + buffer.Write(buf) + + lzReader := lz4ReaderPool.Get().(*lz4.Reader) + defer lz4ReaderPool.Put(lzReader) + lzReader.Reset(buffer) + + return snapshot_format.ReadBlockFromSnapshot(lzReader, r.eth1Getter, r.cfg) +} + +func (r *beaconSnapshotReader) RawBlockSSZ(slot uint64) ([]byte, error) { + view := r.sn.View() + defer view.Close() + + var buf []byte + + seg, ok := view.BeaconBlocksSegment(slot) + if !ok { + return nil, nil + } + + if seg.idxSlot == nil { + return nil, nil + } + blockOffset := seg.idxSlot.OrdinalLookup(slot - seg.idxSlot.BaseDataID()) + + gg := seg.seg.MakeGetter() + gg.Reset(blockOffset) + if !gg.HasNext() { + return nil, nil + } + buf, _ = gg.Next(buf) + return buf, nil +} diff --git a/turbo/snapshotsync/freezeblocks/block_reader.go b/turbo/snapshotsync/freezeblocks/block_reader.go index a837d6bf0b7..430e9f5ab95 100644 --- a/turbo/snapshotsync/freezeblocks/block_reader.go +++ b/turbo/snapshotsync/freezeblocks/block_reader.go @@ -1077,3 +1077,33 @@ func (r *BlockReader) LastFrozenEventID() uint64 { } return lastEventID } + +// ---- Data Integrity part ---- + +func (r *BlockReader) ensureHeaderNumber(n uint64, seg *HeaderSegment) error { + h, _, err := r.headerFromSnapshot(n, seg, nil) + if err != nil { + return err + } + if h == nil { + return fmt.Errorf("ensureHeaderNumber: not found header: %d", n) + } + if h.Number.Uint64() != n { + return fmt.Errorf("ensureHeaderNumber: requested header: %d, got: %d", n, h.Number.Uint64()) + } + return nil +} + +func (r *BlockReader) Integrity(ctx context.Context) error { + view := r.sn.View() + defer view.Close() + for _, seg := range view.Headers() { + if err := r.ensureHeaderNumber(seg.ranges.from, seg); err != nil { + return err + } + if err := r.ensureHeaderNumber(seg.ranges.to-1, seg); err != nil { + return err + } + } + return nil +} diff --git a/turbo/snapshotsync/freezeblocks/block_snapshots.go b/turbo/snapshotsync/freezeblocks/block_snapshots.go index 96e222d54ee..dc21c29f275 100644 --- a/turbo/snapshotsync/freezeblocks/block_snapshots.go +++ b/turbo/snapshotsync/freezeblocks/block_snapshots.go @@ -19,6 +19,7 @@ import ( "github.com/holiman/uint256" "github.com/ledgerwatch/erigon-lib/chain" + "github.com/ledgerwatch/erigon-lib/chain/snapcfg" common2 "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/background" "github.com/ledgerwatch/erigon-lib/common/cmp" @@ -45,7 +46,6 @@ import ( "github.com/ledgerwatch/erigon/rlp" "github.com/ledgerwatch/erigon/turbo/services" "github.com/ledgerwatch/erigon/turbo/silkworm" - "github.com/ledgerwatch/erigon/turbo/snapshotsync/snapcfg" "github.com/ledgerwatch/log/v3" "golang.org/x/exp/slices" "golang.org/x/sync/errgroup" @@ -121,11 +121,7 @@ func (sn *HeaderSegment) reopenIdx(dir string) (err error) { if err != nil { return fmt.Errorf("%w, fileName: %s", err, fileName) } - if sn.idxHeaderHash.ModTime().Before(sn.seg.ModTime()) { - // Index has been created before the segment file, needs to be ignored (and rebuilt) as inconsistent - sn.idxHeaderHash.Close() - sn.idxHeaderHash = nil - } + return nil } @@ -182,11 +178,6 @@ func (sn *BodySegment) reopenIdx(dir string) (err error) { if err != nil { return fmt.Errorf("%w, fileName: %s", err, fileName) } - if sn.idxBodyNumber.ModTime().Before(sn.seg.ModTime()) { - // Index has been created before the segment file, needs to be ignored (and rebuilt) as inconsistent - sn.idxBodyNumber.Close() - sn.idxBodyNumber = nil - } return nil } @@ -229,24 +220,27 @@ func (sn *TxnSegment) reopenIdx(dir string) (err error) { if err != nil { return fmt.Errorf("%w, fileName: %s", err, fileName) } - if sn.IdxTxnHash.ModTime().Before(sn.Seg.ModTime()) { - log.Trace("[snapshots] skip index because it modify time is ahead before .seg file", "name", sn.IdxTxnHash.FileName()) - // Index has been created before the segment file, needs to be ignored (and rebuilt) as inconsistent - sn.IdxTxnHash.Close() - sn.IdxTxnHash = nil - } + + /* + // Historically we had several times when: + // - erigon downloaded new version of .seg file + // - or didn't finish download and start indexing + // this was a "quick-fix protection" against this cases + // but now we have other protections for this cases + // let's try to remove this one - because it's not compatible with "copy datadir" and "restore datadir from backup" scenarios + if sn.IdxTxnHash.ModTime().Before(sn.Seg.ModTime()) { + log.Trace("[snapshots] skip index because it modify time is ahead before .seg file", "name", sn.IdxTxnHash.FileName()) + //Index has been created before the segment file, needs to be ignored (and rebuilt) as inconsistent + sn.IdxTxnHash.Close() + sn.IdxTxnHash = nil + } + */ fileName = snaptype.IdxFileName(sn.ranges.from, sn.ranges.to, snaptype.Transactions2Block.String()) sn.IdxTxnHash2BlockNum, err = recsplit.OpenIndex(path.Join(dir, fileName)) if err != nil { return fmt.Errorf("%w, fileName: %s", err, fileName) } - if sn.IdxTxnHash2BlockNum.ModTime().Before(sn.Seg.ModTime()) { - log.Trace("[snapshots] skip index because it modify time is ahead before .seg file", "name", sn.IdxTxnHash2BlockNum.FileName()) - // Index has been created before the segment file, needs to be ignored (and rebuilt) as inconsistent - sn.IdxTxnHash2BlockNum.Close() - sn.IdxTxnHash2BlockNum = nil - } return nil } @@ -959,7 +953,7 @@ func BuildMissedIndices(logPrefix string, ctx context.Context, dirs datadir.Dirs } }() - for _, t := range snaptype.AllSnapshotTypes { + for _, t := range snaptype.BlockSnapshotTypes { for index := range segments { segment := segments[index] if segment.T != t { @@ -1065,7 +1059,7 @@ MainLoop: if f.From == f.To { continue } - for _, t := range snaptype.AllSnapshotTypes { + for _, t := range snaptype.BlockSnapshotTypes { p := filepath.Join(dir, snaptype.SegmentFileName(f.From, f.To, t)) if !dir2.FileExist(p) { continue MainLoop @@ -1118,6 +1112,28 @@ func noOverlaps(in []snaptype.FileInfo) (res []snaptype.FileInfo) { return res } +func SegmentsCaplin(dir string) (res []snaptype.FileInfo, missingSnapshots []Range, err error) { + list, err := snaptype.Segments(dir) + if err != nil { + return nil, missingSnapshots, err + } + + { + var l []snaptype.FileInfo + var m []Range + for _, f := range list { + if f.T != snaptype.BeaconBlocks { + continue + } + l = append(l, f) + } + l, m = noGaps(noOverlaps(l)) + res = append(res, l...) + missingSnapshots = append(missingSnapshots, m...) + } + return res, missingSnapshots, nil +} + func Segments(dir string) (res []snaptype.FileInfo, missingSnapshots []Range, err error) { list, err := snaptype.Segments(dir) if err != nil { @@ -1217,8 +1233,8 @@ func canRetire(from, to uint64) (blockFrom, blockTo uint64, can bool) { blockFrom = (from / 1_000) * 1_000 roundedTo1K := (to / 1_000) * 1_000 var maxJump uint64 = 1_000 - if blockFrom%500_000 == 0 { - maxJump = 500_000 + if blockFrom%snaptype.Erigon2MergeLimit == 0 { + maxJump = snaptype.Erigon2MergeLimit } else if blockFrom%100_000 == 0 { maxJump = 100_000 } else if blockFrom%10_000 == 0 { @@ -1227,8 +1243,8 @@ func canRetire(from, to uint64) (blockFrom, blockTo uint64, can bool) { //roundedTo1K := (to / 1_000) * 1_000 jump := cmp.Min(maxJump, roundedTo1K-blockFrom) switch { // only next segment sizes are allowed - case jump >= 500_000: - blockTo = blockFrom + 500_000 + case jump >= snaptype.Erigon2MergeLimit: + blockTo = blockFrom + snaptype.Erigon2MergeLimit case jump >= 100_000: blockTo = blockFrom + 100_000 case jump >= 10_000: @@ -1250,7 +1266,7 @@ func CanDeleteTo(curBlockNum uint64, blocksInSnapshots uint64) (blockTo uint64) return cmp.Min(hardLimit, blocksInSnapshots+1) } -func (br *BlockRetire) RetireBlocks(ctx context.Context, blockFrom, blockTo uint64, lvl log.Lvl, seedNewSnapshots func(downloadRequest []services.DownloadRequest) error) error { +func (br *BlockRetire) RetireBlocks(ctx context.Context, blockFrom, blockTo uint64, lvl log.Lvl, seedNewSnapshots func(downloadRequest []services.DownloadRequest) error, onDelete func(l []string) error) error { chainConfig := fromdb.ChainConfig(br.db) notifier, logger, blockReader, tmpDir, db, workers := br.notifier, br.logger, br.blockReader, br.tmpDir, br.db, br.workers logger.Log(lvl, "[snapshots] Retire Blocks", "range", fmt.Sprintf("%dk-%dk", blockFrom/1000, blockTo/1000)) @@ -1258,7 +1274,7 @@ func (br *BlockRetire) RetireBlocks(ctx context.Context, blockFrom, blockTo uint firstTxNum := blockReader.(*BlockReader).FirstTxNumNotInSnapshots() // in future we will do it in background - if err := DumpBlocks(ctx, blockFrom, blockTo, snaptype.Erigon2SegmentSize, tmpDir, snapshots.Dir(), firstTxNum, db, workers, lvl, logger, blockReader); err != nil { + if err := DumpBlocks(ctx, blockFrom, blockTo, snaptype.Erigon2MergeLimit, tmpDir, snapshots.Dir(), firstTxNum, db, workers, lvl, logger, blockReader); err != nil { return fmt.Errorf("DumpBlocks: %w", err) } if err := snapshots.ReopenFolder(); err != nil { @@ -1268,34 +1284,31 @@ func (br *BlockRetire) RetireBlocks(ctx context.Context, blockFrom, blockTo uint if notifier != nil && !reflect.ValueOf(notifier).IsNil() { // notify about new snapshots of any size notifier.OnNewSnapshot() } - merger := NewMerger(tmpDir, workers, lvl, db, chainConfig, notifier, logger) - rangesToMerge := merger.FindMergeRanges(snapshots.Ranges()) + merger := NewMerger(tmpDir, workers, lvl, db, chainConfig, logger) + rangesToMerge := merger.FindMergeRanges(snapshots.Ranges(), snapshots.BlocksAvailable()) if len(rangesToMerge) == 0 { return nil } - err := merger.Merge(ctx, snapshots, rangesToMerge, snapshots.Dir(), true /* doIndex */) + onMerge := func(r Range) error { + if notifier != nil && !reflect.ValueOf(notifier).IsNil() { // notify about new snapshots of any size + notifier.OnNewSnapshot() + } + + if seedNewSnapshots != nil { + downloadRequest := []services.DownloadRequest{ + services.NewDownloadRequest(&services.Range{From: r.from, To: r.to}, "", "", false /* Bor */), + } + if err := seedNewSnapshots(downloadRequest); err != nil { + return err + } + } + return nil + } + err := merger.Merge(ctx, snapshots, rangesToMerge, snapshots.Dir(), true /* doIndex */, onMerge, onDelete) if err != nil { return err } - if err := snapshots.ReopenFolder(); err != nil { - return fmt.Errorf("reopen: %w", err) - } - snapshots.LogStat() - if notifier != nil && !reflect.ValueOf(notifier).IsNil() { // notify about new snapshots of any size - notifier.OnNewSnapshot() - } - downloadRequest := make([]services.DownloadRequest, 0, len(rangesToMerge)) - for i := range rangesToMerge { - r := &services.Range{From: rangesToMerge[i].from, To: rangesToMerge[i].to} - downloadRequest = append(downloadRequest, services.NewDownloadRequest(r, "", "", false /* Bor */)) - } - - if seedNewSnapshots != nil { - if err := seedNewSnapshots(downloadRequest); err != nil { - return err - } - } return nil } @@ -1320,7 +1333,7 @@ func (br *BlockRetire) PruneAncientBlocks(tx kv.RwTx, limit int, includeBor bool return nil } -func (br *BlockRetire) RetireBlocksInBackground(ctx context.Context, forwardProgress uint64, includeBor bool, lvl log.Lvl, seedNewSnapshots func(downloadRequest []services.DownloadRequest) error) { +func (br *BlockRetire) RetireBlocksInBackground(ctx context.Context, forwardProgress uint64, includeBor bool, lvl log.Lvl, seedNewSnapshots func(downloadRequest []services.DownloadRequest) error, onDeleteSnapshots func(l []string) error) { ok := br.working.CompareAndSwap(false, true) if !ok { // go-routine is still working @@ -1331,7 +1344,7 @@ func (br *BlockRetire) RetireBlocksInBackground(ctx context.Context, forwardProg blockFrom, blockTo, ok := CanRetire(forwardProgress, br.blockReader.FrozenBlocks()) if ok { - if err := br.RetireBlocks(ctx, blockFrom, blockTo, lvl, seedNewSnapshots); err != nil { + if err := br.RetireBlocks(ctx, blockFrom, blockTo, lvl, seedNewSnapshots, onDeleteSnapshots); err != nil { br.logger.Warn("[snapshots] retire blocks", "err", err, "fromBlock", blockFrom, "toBlock", blockTo) } } @@ -1525,10 +1538,6 @@ func dumpBlocksRange(ctx context.Context, blockFrom, blockTo uint64, tmpDir, sna } func hasIdxFile(sn snaptype.FileInfo, logger log.Logger) bool { - stat, err := os.Stat(sn.Path) - if err != nil { - return false - } dir, _ := filepath.Split(sn.Path) fName := snaptype.IdxFileName(sn.From, sn.To, sn.T.String()) var result = true @@ -1538,22 +1547,12 @@ func hasIdxFile(sn snaptype.FileInfo, logger log.Logger) bool { if err != nil { return false } - // If index was created before the segment file, it needs to be ignored (and rebuilt) - if idx.ModTime().Before(stat.ModTime()) { - logger.Warn("Index file has timestamp before segment file, will be recreated", "segfile", sn.Path, "segtime", stat.ModTime(), "idxfile", fName, "idxtime", idx.ModTime()) - result = false - } idx.Close() case snaptype.Transactions: idx, err := recsplit.OpenIndex(path.Join(dir, fName)) if err != nil { return false } - // If index was created before the segment file, it needs to be ignored (and rebuilt) - if idx.ModTime().Before(stat.ModTime()) { - log.Warn("Index file has timestamp before segment file, will be recreated", "segfile", sn.Path, "segtime", stat.ModTime(), "idxfile", fName, "idxtime", idx.ModTime()) - result = false - } idx.Close() fName = snaptype.IdxFileName(sn.From, sn.To, snaptype.Transactions2Block.String()) @@ -1561,11 +1560,6 @@ func hasIdxFile(sn snaptype.FileInfo, logger log.Logger) bool { if err != nil { return false } - // If index was created before the segment file, it needs to be ignored (and rebuilt) - if idx.ModTime().Before(stat.ModTime()) { - logger.Warn("Index file has timestamp before segment file, will be recreated", "segfile", sn.Path, "segtime", stat.ModTime(), "idxfile", fName, "idxtime", idx.ModTime()) - result = false - } idx.Close() } return result @@ -2173,29 +2167,43 @@ type Merger struct { tmpDir string chainConfig *chain.Config chainDB kv.RoDB - notifier services.DBEventNotifier logger log.Logger } -func NewMerger(tmpDir string, compressWorkers int, lvl log.Lvl, chainDB kv.RoDB, chainConfig *chain.Config, notifier services.DBEventNotifier, logger log.Logger) *Merger { - return &Merger{tmpDir: tmpDir, compressWorkers: compressWorkers, lvl: lvl, chainDB: chainDB, chainConfig: chainConfig, notifier: notifier, logger: logger} +func NewMerger(tmpDir string, compressWorkers int, lvl log.Lvl, chainDB kv.RoDB, chainConfig *chain.Config, logger log.Logger) *Merger { + return &Merger{tmpDir: tmpDir, compressWorkers: compressWorkers, lvl: lvl, chainDB: chainDB, chainConfig: chainConfig, logger: logger} } type Range struct { from, to uint64 } -func (r Range) From() uint64 { return r.from } -func (r Range) To() uint64 { return r.to } +func (r Range) From() uint64 { return r.from } +func (r Range) To() uint64 { return r.to } +func (r Range) IsRecent(max uint64) bool { return max-r.to < snaptype.Erigon2MergeLimit } -func (*Merger) FindMergeRanges(currentRanges []Range) (toMerge []Range) { +type Ranges []Range + +func (r Ranges) String() string { + return fmt.Sprintf("%d", r) +} + +var MergeSteps = []uint64{500_000, 100_000, 10_000} +var RecentMergeSteps = []uint64{100_000, 10_000} + +func (m *Merger) FindMergeRanges(currentRanges []Range, maxBlockNum uint64) (toMerge []Range) { for i := len(currentRanges) - 1; i > 0; i-- { r := currentRanges[i] - if r.to-r.from >= snaptype.Erigon2SegmentSize { // is complete .seg - continue + isRecent := r.IsRecent(maxBlockNum) + mergeLimit, mergeSteps := uint64(snaptype.Erigon2MergeLimit), MergeSteps + if isRecent { + mergeLimit, mergeSteps = snaptype.Erigon2RecentMergeLimit, RecentMergeSteps } - for _, span := range []uint64{500_000, 100_000, 10_000} { + if r.to-r.from >= mergeLimit { + continue + } + for _, span := range mergeSteps { if r.to%span != 0 { continue } @@ -2292,7 +2300,7 @@ func (m *Merger) filesByRange(snapshots *RoSnapshots, from, to uint64) (map[snap } // Merge does merge segments in given ranges -func (m *Merger) Merge(ctx context.Context, snapshots *RoSnapshots, mergeRanges []Range, snapDir string, doIndex bool) error { +func (m *Merger) Merge(ctx context.Context, snapshots *RoSnapshots, mergeRanges []Range, snapDir string, doIndex bool, onMerge func(r Range) error, onDelete func(l []string) error) error { if len(mergeRanges) == 0 { return nil } @@ -2304,7 +2312,7 @@ func (m *Merger) Merge(ctx context.Context, snapshots *RoSnapshots, mergeRanges return err } - for _, t := range snaptype.AllSnapshotTypes { + for _, t := range snaptype.BlockSnapshotTypes { segName := snaptype.SegmentFileName(r.from, r.to, t) f, ok := snaptype.ParseFileName(snapDir, segName) if !ok { @@ -2324,11 +2332,20 @@ func (m *Merger) Merge(ctx context.Context, snapshots *RoSnapshots, mergeRanges return fmt.Errorf("ReopenSegments: %w", err) } snapshots.LogStat() - if m.notifier != nil { // notify about new snapshots of any size - m.notifier.OnNewSnapshot() - time.Sleep(1 * time.Second) // i working on blocking API - to ensure client does not use old snapsthos - and then delete them + + if err := onMerge(r); err != nil { + return err } - for _, t := range snaptype.AllSnapshotTypes { + for _, t := range snaptype.BlockSnapshotTypes { + if len(toMerge[t]) == 0 { + continue + } + if err := onDelete(toMerge[t]); err != nil { + return err + } + } + time.Sleep(1 * time.Second) // i working on blocking API - to ensure client does not use old snapsthos - and then delete them + for _, t := range snaptype.BlockSnapshotTypes { m.removeOldFiles(toMerge[t], snapDir) } } @@ -2356,6 +2373,9 @@ func (m *Merger) merge(ctx context.Context, toMerge []string, targetFile string, } defer f.Close() + _, fName := filepath.Split(targetFile) + m.logger.Debug("[snapshots] merge", "file", fName) + for _, d := range cList { if err := d.WithReadAhead(func() error { g := d.MakeGetter() diff --git a/turbo/snapshotsync/freezeblocks/block_snapshots_test.go b/turbo/snapshotsync/freezeblocks/block_snapshots_test.go index 68a3508d412..bfb051dbb04 100644 --- a/turbo/snapshotsync/freezeblocks/block_snapshots_test.go +++ b/turbo/snapshotsync/freezeblocks/block_snapshots_test.go @@ -6,6 +6,8 @@ import ( "testing" "testing/fstest" + "github.com/ledgerwatch/erigon-lib/chain/networkname" + "github.com/ledgerwatch/erigon-lib/chain/snapcfg" "github.com/ledgerwatch/erigon-lib/compress" "github.com/ledgerwatch/erigon-lib/downloader/snaptype" "github.com/ledgerwatch/erigon-lib/recsplit" @@ -15,8 +17,6 @@ import ( "github.com/ledgerwatch/erigon/common/math" "github.com/ledgerwatch/erigon/eth/ethconfig" "github.com/ledgerwatch/erigon/params" - "github.com/ledgerwatch/erigon/params/networkname" - "github.com/ledgerwatch/erigon/turbo/snapshotsync/snapcfg" ) func createTestSegmentFile(t *testing.T, from, to uint64, name snaptype.Type, dir string, logger log.Logger) { @@ -57,28 +57,86 @@ func createTestSegmentFile(t *testing.T, from, to uint64, name snaptype.Type, di } } +func TestFindMergeRange(t *testing.T) { + merger := NewMerger("x", 1, log.LvlInfo, nil, params.MainnetChainConfig, nil) + t.Run("big", func(t *testing.T) { + var ranges []Range + for i := 0; i < 24; i++ { + ranges = append(ranges, Range{from: uint64(i * 100_000), to: uint64((i + 1) * 100_000)}) + } + found := merger.FindMergeRanges(ranges, uint64(24*100_000)) + + expect := []Range{ + {0, 500_000}, + {500_000, 1_000_000}, + {1_000_000, 1_500_000}, + } + require.Equal(t, Ranges(expect).String(), Ranges(found).String()) + }) + + t.Run("small", func(t *testing.T) { + var ranges Ranges + for i := 0; i < 240; i++ { + ranges = append(ranges, Range{from: uint64(i * 10_000), to: uint64((i + 1) * 10_000)}) + } + found := merger.FindMergeRanges(ranges, uint64(240*10_000)) + + expect := Ranges{ + {0, 500_000}, + {500_000, 1_000_000}, + {1_000_000, 1_500_000}, + {1_500_000, 1_600_000}, + {1_600_000, 1_700_000}, + {1_700_000, 1_800_000}, + {1_800_000, 1_900_000}, + {1_900_000, 2_000_000}, + {2_000_000, 2_100_000}, + {2_100_000, 2_200_000}, + {2_200_000, 2_300_000}, + {2_300_000, 2_400_000}, + } + + require.Equal(t, expect.String(), Ranges(found).String()) + }) + + t.Run("IsRecent", func(t *testing.T) { + require.True(t, Range{500_000, 599_000}.IsRecent(1_000_000)) + require.True(t, Range{500_000, 501_000}.IsRecent(1_000_000)) + require.False(t, Range{499_000, 500_000}.IsRecent(1_000_000)) + require.False(t, Range{400_000, 500_000}.IsRecent(1_000_000)) + require.False(t, Range{400_000, 401_000}.IsRecent(1_000_000)) + + require.False(t, Range{500_000, 501_000}.IsRecent(1_100_000)) + }) + +} + func TestMergeSnapshots(t *testing.T) { logger := log.New() dir, require := t.TempDir(), require.New(t) createFile := func(from, to uint64) { - for _, snT := range snaptype.AllSnapshotTypes { + for _, snT := range snaptype.BlockSnapshotTypes { createTestSegmentFile(t, from, to, snT, dir, logger) } } - N := uint64(7) - createFile(0, 500_000) - for i := uint64(500_000); i < 500_000+N*100_000; i += 100_000 { + N := uint64(17) + createFile(0, snaptype.Erigon2MergeLimit) + for i := uint64(snaptype.Erigon2MergeLimit); i < snaptype.Erigon2MergeLimit+N*100_000; i += 100_000 { createFile(i, i+100_000) } s := NewRoSnapshots(ethconfig.BlocksFreezing{Enabled: true}, dir, logger) defer s.Close() require.NoError(s.ReopenFolder()) { - merger := NewMerger(dir, 1, log.LvlInfo, nil, params.MainnetChainConfig, nil, logger) - ranges := merger.FindMergeRanges(s.Ranges()) + merger := NewMerger(dir, 1, log.LvlInfo, nil, params.MainnetChainConfig, logger) + ranges := merger.FindMergeRanges(s.Ranges(), s.SegmentsMax()) require.True(len(ranges) > 0) - err := merger.Merge(context.Background(), s, ranges, s.Dir(), false) + err := merger.Merge(context.Background(), s, ranges, s.Dir(), false, func(r Range) error { + return nil + }, func(l []string) error { + return nil + }) require.NoError(err) } @@ -90,14 +148,18 @@ func TestMergeSnapshots(t *testing.T) { require.Equal(5, a) { - merger := NewMerger(dir, 1, log.LvlInfo, nil, params.MainnetChainConfig, nil, logger) - ranges := merger.FindMergeRanges(s.Ranges()) + merger := NewMerger(dir, 1, log.LvlInfo, nil, params.MainnetChainConfig, logger) + ranges := merger.FindMergeRanges(s.Ranges(), s.SegmentsMax()) require.True(len(ranges) == 0) - err := merger.Merge(context.Background(), s, ranges, s.Dir(), false) + err := merger.Merge(context.Background(), s, ranges, s.Dir(), false, func(r Range) error { + return nil + }, func(l []string) error { + return nil + }) require.NoError(err) } - expectedFileName = snaptype.SegmentFileName(1_100_000, 1_200_000, snaptype.Transactions) + expectedFileName = snaptype.SegmentFileName(1_800_000, 1_900_000, snaptype.Transactions) d, err = compress.NewDecompressor(filepath.Join(dir, expectedFileName)) require.NoError(err) defer d.Close() diff --git a/turbo/snapshotsync/freezeblocks/bor_snapshots.go b/turbo/snapshotsync/freezeblocks/bor_snapshots.go index 9ef3490643b..a1240ccb52f 100644 --- a/turbo/snapshotsync/freezeblocks/bor_snapshots.go +++ b/turbo/snapshotsync/freezeblocks/bor_snapshots.go @@ -16,6 +16,7 @@ import ( "time" "github.com/ledgerwatch/erigon-lib/chain" + "github.com/ledgerwatch/erigon-lib/chain/snapcfg" common2 "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/background" "github.com/ledgerwatch/erigon-lib/common/cmp" @@ -31,7 +32,6 @@ import ( "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/eth/ethconfig" "github.com/ledgerwatch/erigon/turbo/services" - "github.com/ledgerwatch/erigon/turbo/snapshotsync/snapcfg" "github.com/ledgerwatch/log/v3" "golang.org/x/exp/slices" ) @@ -83,11 +83,6 @@ func (sn *BorEventSegment) reopenIdx(dir string) (err error) { if err != nil { return fmt.Errorf("%w, fileName: %s", err, fileName) } - if sn.IdxBorTxnHash.ModTime().Before(sn.seg.ModTime()) { - // Index has been created before the segment file, needs to be ignored (and rebuilt) as inconsistent - sn.IdxBorTxnHash.Close() - sn.IdxBorTxnHash = nil - } return nil } @@ -154,11 +149,6 @@ func (sn *BorSpanSegment) reopenIdx(dir string) (err error) { if err != nil { return fmt.Errorf("%w, fileName: %s", err, fileName) } - if sn.idx.ModTime().Before(sn.seg.ModTime()) { - // Index has been created before the segment file, needs to be ignored (and rebuilt) as inconsistent - sn.idx.Close() - sn.idx = nil - } return nil } @@ -191,7 +181,7 @@ func (br *BlockRetire) RetireBorBlocks(ctx context.Context, blockFrom, blockTo u snapshots := br.borSnapshots() firstTxNum := blockReader.(*BlockReader).FirstTxNumNotInSnapshots() - if err := DumpBorBlocks(ctx, chainConfig, blockFrom, blockTo, snaptype.Erigon2SegmentSize, tmpDir, snapshots.Dir(), firstTxNum, db, workers, lvl, logger, blockReader); err != nil { + if err := DumpBorBlocks(ctx, chainConfig, blockFrom, blockTo, snaptype.Erigon2MergeLimit, tmpDir, snapshots.Dir(), firstTxNum, db, workers, lvl, logger, blockReader); err != nil { return fmt.Errorf("DumpBorBlocks: %w", err) } if err := snapshots.ReopenFolder(); err != nil { @@ -202,31 +192,32 @@ func (br *BlockRetire) RetireBorBlocks(ctx context.Context, blockFrom, blockTo u notifier.OnNewSnapshot() } merger := NewBorMerger(tmpDir, workers, lvl, db, chainConfig, notifier, logger) - rangesToMerge := merger.FindMergeRanges(snapshots.Ranges()) + rangesToMerge := merger.FindMergeRanges(snapshots.Ranges(), snapshots.BlocksAvailable()) if len(rangesToMerge) == 0 { return nil } - err := merger.Merge(ctx, snapshots, rangesToMerge, snapshots.Dir(), true /* doIndex */) - if err != nil { - return err - } - if err := snapshots.ReopenFolder(); err != nil { - return fmt.Errorf("reopen: %w", err) - } - snapshots.LogStat() - if notifier != nil && !reflect.ValueOf(notifier).IsNil() { // notify about new snapshots of any size - notifier.OnNewSnapshot() - } - downloadRequest := make([]services.DownloadRequest, 0, len(rangesToMerge)) - for i := range rangesToMerge { - r := &services.Range{From: rangesToMerge[i].from, To: rangesToMerge[i].to} - downloadRequest = append(downloadRequest, services.NewDownloadRequest(r, "", "", true /* Bor */)) - } + onMerge := func(r Range) error { + if notifier != nil && !reflect.ValueOf(notifier).IsNil() { // notify about new snapshots of any size + notifier.OnNewSnapshot() + } - if seedNewSnapshots != nil { - if err := seedNewSnapshots(downloadRequest); err != nil { - return err + if seedNewSnapshots != nil { + downloadRequest := []services.DownloadRequest{ + services.NewDownloadRequest(&services.Range{From: r.from, To: r.to}, "", "", true /* Bor */), + } + if err := seedNewSnapshots(downloadRequest); err != nil { + return err + } } + return nil + } + onDelete := func(files []string) error { + //TODO: add Downloader API to delete files + return nil + } + err := merger.Merge(ctx, snapshots, rangesToMerge, snapshots.Dir(), true /* doIndex */, onMerge, onDelete) + if err != nil { + return err } return nil } @@ -1075,14 +1066,19 @@ func NewBorMerger(tmpDir string, compressWorkers int, lvl log.Lvl, chainDB kv.Ro return &BorMerger{tmpDir: tmpDir, compressWorkers: compressWorkers, lvl: lvl, chainDB: chainDB, chainConfig: chainConfig, notifier: notifier, logger: logger} } -func (*BorMerger) FindMergeRanges(currentRanges []Range) (toMerge []Range) { +func (m *BorMerger) FindMergeRanges(currentRanges []Range, maxBlockNum uint64) (toMerge []Range) { for i := len(currentRanges) - 1; i > 0; i-- { r := currentRanges[i] - if r.to-r.from >= snaptype.Erigon2SegmentSize { // is complete .seg - continue + isRecent := r.IsRecent(maxBlockNum) + mergeLimit, mergeSteps := uint64(snaptype.Erigon2RecentMergeLimit), MergeSteps + if isRecent { + mergeLimit, mergeSteps = snaptype.Erigon2MergeLimit, RecentMergeSteps } - for _, span := range []uint64{500_000, 100_000, 10_000} { + if r.to-r.from >= mergeLimit { + continue + } + for _, span := range mergeSteps { if r.to%span != 0 { continue } @@ -1124,7 +1120,7 @@ func (m *BorMerger) filesByRange(snapshots *BorRoSnapshots, from, to uint64) (ma } // Merge does merge segments in given ranges -func (m *BorMerger) Merge(ctx context.Context, snapshots *BorRoSnapshots, mergeRanges []Range, snapDir string, doIndex bool) error { +func (m *BorMerger) Merge(ctx context.Context, snapshots *BorRoSnapshots, mergeRanges []Range, snapDir string, doIndex bool, onMerge func(r Range) error, onDelete func(l []string) error) error { if len(mergeRanges) == 0 { return nil } @@ -1156,11 +1152,19 @@ func (m *BorMerger) Merge(ctx context.Context, snapshots *BorRoSnapshots, mergeR return fmt.Errorf("ReopenSegments: %w", err) } snapshots.LogStat() - if m.notifier != nil { // notify about new snapshots of any size - m.notifier.OnNewSnapshot() - time.Sleep(1 * time.Second) // i working on blocking API - to ensure client does not use old snapsthos - and then delete them + if err := onMerge(r); err != nil { + return err + } + for _, t := range snaptype.BlockSnapshotTypes { + if len(toMerge[t]) == 0 { + continue + } + if err := onDelete(toMerge[t]); err != nil { + return err + } } - for _, t := range []snaptype.Type{snaptype.BorEvents} { + time.Sleep(1 * time.Second) // i working on blocking API - to ensure client does not use old snapsthos - and then delete them + for _, t := range snaptype.BlockSnapshotTypes { m.removeOldFiles(toMerge[t], snapDir) } } diff --git a/turbo/snapshotsync/freezeblocks/caplin_snapshots.go b/turbo/snapshotsync/freezeblocks/caplin_snapshots.go new file mode 100644 index 00000000000..064de66a85d --- /dev/null +++ b/turbo/snapshotsync/freezeblocks/caplin_snapshots.go @@ -0,0 +1,401 @@ +package freezeblocks + +import ( + "bytes" + "context" + "encoding/binary" + "errors" + "fmt" + "os" + "path" + "path/filepath" + "sync" + "sync/atomic" + + "github.com/ledgerwatch/erigon-lib/common/background" + "github.com/ledgerwatch/erigon-lib/common/cmp" + "github.com/ledgerwatch/erigon-lib/common/dbg" + "github.com/ledgerwatch/erigon-lib/compress" + "github.com/ledgerwatch/erigon-lib/downloader/snaptype" + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon-lib/recsplit" + "github.com/ledgerwatch/erigon/cl/persistence" + "github.com/ledgerwatch/erigon/cl/persistence/format/snapshot_format" + "github.com/ledgerwatch/erigon/eth/ethconfig" + "github.com/ledgerwatch/log/v3" + "github.com/pierrec/lz4" +) + +type BeaconBlockSegment struct { + seg *compress.Decompressor // value: chunked(ssz(SignedBeaconBlocks)) + idxSlot *recsplit.Index // slot -> beacon_slot_segment_offset + ranges Range +} + +func (sn *BeaconBlockSegment) closeIdx() { + if sn.idxSlot != nil { + sn.idxSlot.Close() + sn.idxSlot = nil + } +} +func (sn *BeaconBlockSegment) closeSeg() { + if sn.seg != nil { + sn.seg.Close() + sn.seg = nil + } +} +func (sn *BeaconBlockSegment) close() { + sn.closeSeg() + sn.closeIdx() +} +func (sn *BeaconBlockSegment) reopenSeg(dir string) (err error) { + sn.closeSeg() + fileName := snaptype.SegmentFileName(sn.ranges.from, sn.ranges.to, snaptype.BeaconBlocks) + sn.seg, err = compress.NewDecompressor(path.Join(dir, fileName)) + if err != nil { + return fmt.Errorf("%w, fileName: %s", err, fileName) + } + return nil +} +func (sn *BeaconBlockSegment) reopenIdxIfNeed(dir string, optimistic bool) (err error) { + if sn.idxSlot != nil { + return nil + } + err = sn.reopenIdx(dir) + if err != nil { + if !errors.Is(err, os.ErrNotExist) { + if optimistic { + log.Warn("[snapshots] open index", "err", err) + } else { + return err + } + } + } + return nil +} + +func (sn *BeaconBlockSegment) reopenIdx(dir string) (err error) { + sn.closeIdx() + if sn.seg == nil { + return nil + } + fileName := snaptype.IdxFileName(sn.ranges.from, sn.ranges.to, snaptype.BeaconBlocks.String()) + sn.idxSlot, err = recsplit.OpenIndex(path.Join(dir, fileName)) + if err != nil { + return fmt.Errorf("%w, fileName: %s", err, fileName) + } + return nil +} + +type beaconBlockSegments struct { + lock sync.RWMutex + segments []*BeaconBlockSegment +} + +func (s *beaconBlockSegments) View(f func(segments []*BeaconBlockSegment) error) error { + s.lock.RLock() + defer s.lock.RUnlock() + return f(s.segments) +} + +func BeaconBlocksIdx(ctx context.Context, sn snaptype.FileInfo, segmentFilePath string, blockFrom, blockTo uint64, snapDir string, tmpDir string, p *background.Progress, lvl log.Lvl, logger log.Logger) (err error) { + defer func() { + if rec := recover(); rec != nil { + err = fmt.Errorf("BeaconBlocksIdx: at=%d-%d, %v, %s", blockFrom, blockTo, rec, dbg.Stack()) + } + }() + + // Calculate how many records there will be in the index + d, err := compress.NewDecompressor(path.Join(snapDir, segmentFilePath)) + if err != nil { + return err + } + defer d.Close() + + _, fname := filepath.Split(segmentFilePath) + p.Name.Store(&fname) + p.Total.Store(uint64(d.Count())) + + if err := Idx(ctx, d, sn.From, tmpDir, log.LvlDebug, func(idx *recsplit.RecSplit, i, offset uint64, word []byte) error { + if i%100_000 == 0 { + logger.Log(lvl, "Compressing beacon blocks", "progress", i) + } + p.Processed.Add(1) + num := make([]byte, 8) + n := binary.PutUvarint(num, i) + if err := idx.AddKey(num[:n], offset); err != nil { + return err + } + return nil + }, logger); err != nil { + return fmt.Errorf("BodyNumberIdx: %w", err) + } + + return nil +} + +type CaplinSnapshots struct { + indicesReady atomic.Bool + segmentsReady atomic.Bool + + BeaconBlocks *beaconBlockSegments + + dir string + segmentsMax atomic.Uint64 // all types of .seg files are available - up to this number + idxMax atomic.Uint64 // all types of .idx files are available - up to this number + cfg ethconfig.BlocksFreezing + logger log.Logger +} + +// NewCaplinSnapshots - opens all snapshots. But to simplify everything: +// - it opens snapshots only on App start and immutable after +// - all snapshots of given blocks range must exist - to make this blocks range available +// - gaps are not allowed +// - segment have [from:to) semantic +func NewCaplinSnapshots(cfg ethconfig.BlocksFreezing, snapDir string, logger log.Logger) *CaplinSnapshots { + return &CaplinSnapshots{dir: snapDir, cfg: cfg, BeaconBlocks: &beaconBlockSegments{}, logger: logger} +} + +func (s *CaplinSnapshots) IndicesMax() uint64 { return s.idxMax.Load() } +func (s *CaplinSnapshots) SegmentsMax() uint64 { return s.segmentsMax.Load() } +func (s *CaplinSnapshots) BlocksAvailable() uint64 { + return cmp.Min(s.segmentsMax.Load(), s.idxMax.Load()) +} + +// ReopenList stops on optimistic=false, continue opening files on optimistic=true +func (s *CaplinSnapshots) ReopenList(fileNames []string, optimistic bool) error { + s.BeaconBlocks.lock.Lock() + defer s.BeaconBlocks.lock.Unlock() + + s.closeWhatNotInList(fileNames) + var segmentsMax uint64 + var segmentsMaxSet bool +Loop: + for _, fName := range fileNames { + f, ok := snaptype.ParseFileName(s.dir, fName) + if !ok { + continue + } + var processed bool = true + + switch f.T { + case snaptype.BeaconBlocks: + var sn *BeaconBlockSegment + var exists bool + for _, sn2 := range s.BeaconBlocks.segments { + if sn2.seg == nil { // it's ok if some segment was not able to open + continue + } + if fName == sn2.seg.FileName() { + sn = sn2 + exists = true + break + } + } + if !exists { + sn = &BeaconBlockSegment{ranges: Range{f.From, f.To}} + } + if err := sn.reopenSeg(s.dir); err != nil { + if errors.Is(err, os.ErrNotExist) { + if optimistic { + continue Loop + } else { + break Loop + } + } + if optimistic { + s.logger.Warn("[snapshots] open segment", "err", err) + continue Loop + } else { + return err + } + } + + if !exists { + // it's possible to iterate over .seg file even if you don't have index + // then make segment available even if index open may fail + s.BeaconBlocks.segments = append(s.BeaconBlocks.segments, sn) + } + if err := sn.reopenIdxIfNeed(s.dir, optimistic); err != nil { + return err + } + } + + if processed { + if f.To > 0 { + segmentsMax = f.To - 1 + } else { + segmentsMax = 0 + } + segmentsMaxSet = true + } + } + if segmentsMaxSet { + s.segmentsMax.Store(segmentsMax) + } + s.segmentsReady.Store(true) + s.idxMax.Store(s.idxAvailability()) + s.indicesReady.Store(true) + + return nil +} + +func (s *CaplinSnapshots) idxAvailability() uint64 { + var beaconBlocks uint64 + for _, seg := range s.BeaconBlocks.segments { + if seg.idxSlot == nil { + break + } + beaconBlocks = seg.ranges.to - 1 + } + return beaconBlocks +} + +func (s *CaplinSnapshots) ReopenFolder() error { + files, _, err := SegmentsCaplin(s.dir) + if err != nil { + return err + } + list := make([]string, 0, len(files)) + for _, f := range files { + _, fName := filepath.Split(f.Path) + list = append(list, fName) + } + return s.ReopenList(list, false) +} + +func (s *CaplinSnapshots) closeWhatNotInList(l []string) { +Loop1: + for i, sn := range s.BeaconBlocks.segments { + if sn.seg == nil { + continue Loop1 + } + _, name := filepath.Split(sn.seg.FilePath()) + for _, fName := range l { + if fName == name { + continue Loop1 + } + } + sn.close() + s.BeaconBlocks.segments[i] = nil + } + var i int + for i = 0; i < len(s.BeaconBlocks.segments) && s.BeaconBlocks.segments[i] != nil && s.BeaconBlocks.segments[i].seg != nil; i++ { + } + tail := s.BeaconBlocks.segments[i:] + s.BeaconBlocks.segments = s.BeaconBlocks.segments[:i] + for i = 0; i < len(tail); i++ { + if tail[i] != nil { + tail[i].close() + tail[i] = nil + } + } +} + +type CaplinView struct { + s *CaplinSnapshots + closed bool +} + +func (s *CaplinSnapshots) View() *CaplinView { + v := &CaplinView{s: s} + v.s.BeaconBlocks.lock.RLock() + return v +} + +func (v *CaplinView) Close() { + if v.closed { + return + } + v.closed = true + v.s.BeaconBlocks.lock.RUnlock() + +} + +func (v *CaplinView) BeaconBlocks() []*BeaconBlockSegment { return v.s.BeaconBlocks.segments } + +func (v *CaplinView) BeaconBlocksSegment(slot uint64) (*BeaconBlockSegment, bool) { + for _, seg := range v.BeaconBlocks() { + if !(slot >= seg.ranges.from && slot < seg.ranges.to) { + continue + } + return seg, true + } + return nil, false +} + +func dumpBeaconBlocksRange(ctx context.Context, db kv.RoDB, b persistence.BlockSource, fromSlot uint64, toSlot uint64, tmpDir, snapDir string, workers int, lvl log.Lvl, logger log.Logger) error { + segName := snaptype.SegmentFileName(fromSlot, toSlot, snaptype.BeaconBlocks) + f, _ := snaptype.ParseFileName(snapDir, segName) + + sn, err := compress.NewCompressor(ctx, "Snapshot BeaconBlocks", f.Path, tmpDir, compress.MinPatternScore, workers, lvl, logger) + if err != nil { + return err + } + defer sn.Close() + + tx, err := db.BeginRo(ctx) + if err != nil { + return err + } + defer tx.Rollback() + var w bytes.Buffer + lzWriter := lz4.NewWriter(&w) + defer lzWriter.Close() + // Generate .seg file, which is just the list of beacon blocks. + for i := fromSlot; i < toSlot; i++ { + obj, err := b.GetBlock(ctx, tx, i) + if err != nil { + return err + } + if i%20_000 == 0 { + logger.Log(lvl, "Dumping beacon blocks", "progress", i) + } + if obj == nil { + + if err := sn.AddWord(nil); err != nil { + return err + } + continue + } + lzWriter.Reset(&w) + lzWriter.CompressionLevel = 1 + if err := snapshot_format.WriteBlockForSnapshot(obj.Data, lzWriter); err != nil { + return err + } + if err := lzWriter.Flush(); err != nil { + return err + } + word := w.Bytes() + + if err := sn.AddWord(word); err != nil { + return err + } + w.Reset() + } + if err := sn.Compress(); err != nil { + return fmt.Errorf("compress: %w", err) + } + // Generate .idx file, which is the slot => offset mapping. + p := &background.Progress{} + + return BeaconBlocksIdx(ctx, f, segName, fromSlot, toSlot, snapDir, tmpDir, p, lvl, logger) +} + +func DumpBeaconBlocks(ctx context.Context, db kv.RoDB, b persistence.BlockSource, fromSlot, toSlot, blocksPerFile uint64, tmpDir, snapDir string, workers int, lvl log.Lvl, logger log.Logger) error { + if blocksPerFile == 0 { + return nil + } + + for i := fromSlot; i < toSlot; i = chooseSegmentEnd(i, toSlot, blocksPerFile) { + if toSlot-i < blocksPerFile { + break + } + to := chooseSegmentEnd(i, toSlot, blocksPerFile) + logger.Log(lvl, "Dumping beacon blocks", "from", i, "to", to) + if err := dumpBeaconBlocksRange(ctx, db, b, i, to, tmpDir, snapDir, workers, lvl, logger); err != nil { + return err + } + } + return nil +} diff --git a/turbo/snapshotsync/freezeblocks/dump_test.go b/turbo/snapshotsync/freezeblocks/dump_test.go index a7c3b95a8d1..1aae85d6461 100644 --- a/turbo/snapshotsync/freezeblocks/dump_test.go +++ b/turbo/snapshotsync/freezeblocks/dump_test.go @@ -5,6 +5,8 @@ import ( "testing" "github.com/holiman/uint256" + "github.com/ledgerwatch/erigon-lib/chain/networkname" + "github.com/ledgerwatch/erigon-lib/chain/snapcfg" "github.com/ledgerwatch/log/v3" "github.com/stretchr/testify/require" @@ -18,10 +20,8 @@ import ( "github.com/ledgerwatch/erigon/crypto" "github.com/ledgerwatch/erigon/ethdb/prune" "github.com/ledgerwatch/erigon/params" - "github.com/ledgerwatch/erigon/params/networkname" "github.com/ledgerwatch/erigon/rlp" "github.com/ledgerwatch/erigon/turbo/snapshotsync/freezeblocks" - "github.com/ledgerwatch/erigon/turbo/snapshotsync/snapcfg" "github.com/ledgerwatch/erigon/turbo/stages/mock" ) diff --git a/turbo/snapshotsync/snapshotsync.go b/turbo/snapshotsync/snapshotsync.go index 2d2ef7b30bb..2298ba8ed79 100644 --- a/turbo/snapshotsync/snapshotsync.go +++ b/turbo/snapshotsync/snapshotsync.go @@ -9,6 +9,7 @@ import ( "time" "github.com/ledgerwatch/erigon-lib/chain" + "github.com/ledgerwatch/erigon-lib/chain/snapcfg" "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/dbg" "github.com/ledgerwatch/erigon-lib/downloader/downloadergrpc" @@ -20,12 +21,21 @@ import ( "github.com/ledgerwatch/erigon/core/rawdb" "github.com/ledgerwatch/erigon/turbo/services" - "github.com/ledgerwatch/erigon/turbo/snapshotsync/snapcfg" "github.com/ledgerwatch/log/v3" ) +type CaplinMode int + +const ( + + // CaplinModeNone - no caplin mode + NoCaplin CaplinMode = 1 + OnlyCaplin CaplinMode = 2 + AlsoCaplin CaplinMode = 3 +) + func BuildProtoRequest(downloadRequest []services.DownloadRequest) *proto_downloader.DownloadRequest { - req := &proto_downloader.DownloadRequest{Items: make([]*proto_downloader.DownloadItem, 0, len(snaptype.AllSnapshotTypes))} + req := &proto_downloader.DownloadRequest{Items: make([]*proto_downloader.DownloadItem, 0, len(snaptype.BlockSnapshotTypes))} for _, r := range downloadRequest { if r.Path != "" { if r.TorrentHash != "" { @@ -39,17 +49,14 @@ func BuildProtoRequest(downloadRequest []services.DownloadRequest) *proto_downlo }) } } else { - if r.Ranges.To-r.Ranges.From != snaptype.Erigon2SegmentSize { - continue - } if r.Bor { - for _, t := range []snaptype.Type{snaptype.BorEvents, snaptype.BorSpans} { + for _, t := range snaptype.BorSnapshotTypes { req.Items = append(req.Items, &proto_downloader.DownloadItem{ Path: snaptype.SegmentFileName(r.Ranges.From, r.Ranges.To, t), }) } } else { - for _, t := range snaptype.AllSnapshotTypes { + for _, t := range snaptype.BlockSnapshotTypes { req.Items = append(req.Items, &proto_downloader.DownloadItem{ Path: snaptype.SegmentFileName(r.Ranges.From, r.Ranges.To, t), }) @@ -72,7 +79,7 @@ func RequestSnapshotsDownload(ctx context.Context, downloadRequest []services.Do // WaitForDownloader - wait for Downloader service to download all expected snapshots // for MVP we sync with Downloader only once, in future will send new snapshots also -func WaitForDownloader(logPrefix string, ctx context.Context, histV3 bool, agg *state.AggregatorV3, tx kv.RwTx, blockReader services.FullBlockReader, notifier services.DBEventNotifier, cc *chain.Config, snapshotDownloader proto_downloader.DownloaderClient) error { +func WaitForDownloader(logPrefix string, ctx context.Context, histV3 bool, caplin CaplinMode, agg *state.AggregatorV3, tx kv.RwTx, blockReader services.FullBlockReader, notifier services.DBEventNotifier, cc *chain.Config, snapshotDownloader proto_downloader.DownloaderClient) error { snapshots := blockReader.Snapshots() borSnapshots := blockReader.BorSnapshots() if blockReader.FreezingCfg().NoDownloader { @@ -131,6 +138,12 @@ func WaitForDownloader(logPrefix string, ctx context.Context, histV3 bool, agg * continue } } + if caplin == NoCaplin && strings.Contains(p.Name, "beaconblocks") { + continue + } + if caplin == OnlyCaplin && !strings.Contains(p.Name, "beaconblocks") { + continue + } _, exists := existingFilesMap[p.Name] _, borExists := borExistingFilesMap[p.Name] diff --git a/turbo/stages/blockchain_test.go b/turbo/stages/blockchain_test.go index 4f639b56483..1240e372064 100644 --- a/turbo/stages/blockchain_test.go +++ b/turbo/stages/blockchain_test.go @@ -21,6 +21,7 @@ import ( "encoding/binary" "errors" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "math" "math/big" "testing" @@ -38,7 +39,6 @@ import ( "github.com/ledgerwatch/erigon-lib/kv/bitmapdb" types2 "github.com/ledgerwatch/erigon-lib/types" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/common/u256" "github.com/ledgerwatch/erigon/consensus/ethash" "github.com/ledgerwatch/erigon/core" diff --git a/turbo/stages/headerdownload/header_algos.go b/turbo/stages/headerdownload/header_algos.go index 2da72ee05ff..e7b8a29e8fe 100644 --- a/turbo/stages/headerdownload/header_algos.go +++ b/turbo/stages/headerdownload/header_algos.go @@ -8,6 +8,7 @@ import ( "encoding/base64" "errors" "fmt" + "github.com/ledgerwatch/erigon-lib/kv/dbutils" "io" "math/big" "sort" @@ -23,7 +24,6 @@ import ( "github.com/ledgerwatch/erigon/turbo/services" "github.com/ledgerwatch/erigon/common" - "github.com/ledgerwatch/erigon/common/dbutils" "github.com/ledgerwatch/erigon/consensus" "github.com/ledgerwatch/erigon/core/rawdb" "github.com/ledgerwatch/erigon/core/types" diff --git a/turbo/stages/mock/mock_sentry.go b/turbo/stages/mock/mock_sentry.go index f584ca969d5..54e2de6383d 100644 --- a/turbo/stages/mock/mock_sentry.go +++ b/turbo/stages/mock/mock_sentry.go @@ -33,7 +33,6 @@ import ( "github.com/ledgerwatch/erigon-lib/txpool/txpoolcfg" types2 "github.com/ledgerwatch/erigon-lib/types" - "github.com/ledgerwatch/erigon/cmd/sentry/sentry" "github.com/ledgerwatch/erigon/consensus" "github.com/ledgerwatch/erigon/consensus/bor" "github.com/ledgerwatch/erigon/consensus/ethash" @@ -51,6 +50,7 @@ import ( "github.com/ledgerwatch/erigon/eth/stagedsync" "github.com/ledgerwatch/erigon/eth/stagedsync/stages" "github.com/ledgerwatch/erigon/ethdb/prune" + "github.com/ledgerwatch/erigon/p2p/sentry/sentry_multi_client" "github.com/ledgerwatch/erigon/params" "github.com/ledgerwatch/erigon/rlp" "github.com/ledgerwatch/erigon/turbo/builder" @@ -84,7 +84,7 @@ type MockSentry struct { MiningSync *stagedsync.Sync PendingBlocks chan *types.Block MinedBlocks chan *types.Block - sentriesClient *sentry.MultiClient + sentriesClient *sentry_multi_client.MultiClient Key *ecdsa.PrivateKey Genesis *types.Block SentryClient direct.SentryClient @@ -309,7 +309,7 @@ func MockWithEverything(tb testing.TB, gspec *types.Genesis, key *ecdsa.PrivateK shanghaiTime := mock.ChainConfig.ShanghaiTime cancunTime := mock.ChainConfig.CancunTime maxBlobsPerBlock := mock.ChainConfig.GetMaxBlobsPerBlock() - mock.TxPool, err = txpool.New(newTxs, mock.DB, poolCfg, kvcache.NewDummy(), *chainID, shanghaiTime, cancunTime, maxBlobsPerBlock, logger) + mock.TxPool, err = txpool.New(newTxs, mock.DB, poolCfg, kvcache.NewDummy(), *chainID, shanghaiTime, nil /* agraBlock */, cancunTime, maxBlobsPerBlock, logger) if err != nil { tb.Fatal(err) } @@ -367,7 +367,7 @@ func MockWithEverything(tb testing.TB, gspec *types.Genesis, key *ecdsa.PrivateK networkID := uint64(1) maxBlockBroadcastPeers := func(header *types.Header) uint { return 0 } - mock.sentriesClient, err = sentry.NewMultiClient( + mock.sentriesClient, err = sentry_multi_client.NewMultiClient( mock.DB, "mock", mock.ChainConfig, diff --git a/turbo/stages/stageloop.go b/turbo/stages/stageloop.go index 17c2e6628f7..e12240a115a 100644 --- a/turbo/stages/stageloop.go +++ b/turbo/stages/stageloop.go @@ -19,7 +19,6 @@ import ( "github.com/ledgerwatch/erigon-lib/kv/membatchwithdb" "github.com/ledgerwatch/erigon-lib/state" - "github.com/ledgerwatch/erigon/cmd/sentry/sentry" "github.com/ledgerwatch/erigon/consensus" "github.com/ledgerwatch/erigon/consensus/bor/finality/flags" "github.com/ledgerwatch/erigon/consensus/bor/heimdall" @@ -33,6 +32,7 @@ import ( "github.com/ledgerwatch/erigon/eth/stagedsync/stages" "github.com/ledgerwatch/erigon/eth/tracers" "github.com/ledgerwatch/erigon/p2p" + "github.com/ledgerwatch/erigon/p2p/sentry/sentry_multi_client" "github.com/ledgerwatch/erigon/turbo/engineapi/engine_helpers" "github.com/ledgerwatch/erigon/turbo/services" "github.com/ledgerwatch/erigon/turbo/shards" @@ -444,11 +444,18 @@ func StateStep(ctx context.Context, chainReader consensus.ChainReader, engine co return nil } +func silkwormForExecutionStage(silkworm *silkworm.Silkworm, cfg *ethconfig.Config) *silkworm.Silkworm { + if cfg.SilkwormExecution { + return silkworm + } + return nil +} + func NewDefaultStages(ctx context.Context, db kv.RwDB, p2pCfg p2p.Config, cfg *ethconfig.Config, - controlServer *sentry.MultiClient, + controlServer *sentry_multi_client.MultiClient, notifications *shards.Notifications, snapDownloader proto_downloader.DownloaderClient, blockReader services.FullBlockReader, @@ -498,7 +505,7 @@ func NewDefaultStages(ctx context.Context, cfg.Genesis, cfg.Sync, agg, - silkworm, + silkwormForExecutionStage(silkworm, cfg), ), stagedsync.StageHashStateCfg(db, dirs, cfg.HistoryV3), stagedsync.StageTrieCfg(db, true, true, false, dirs.Tmp, blockReader, controlServer.Hd, cfg.HistoryV3, agg), @@ -513,7 +520,7 @@ func NewDefaultStages(ctx context.Context, func NewPipelineStages(ctx context.Context, db kv.RwDB, cfg *ethconfig.Config, - controlServer *sentry.MultiClient, + controlServer *sentry_multi_client.MultiClient, notifications *shards.Notifications, snapDownloader proto_downloader.DownloaderClient, blockReader services.FullBlockReader, @@ -553,7 +560,7 @@ func NewPipelineStages(ctx context.Context, cfg.Genesis, cfg.Sync, agg, - silkworm, + silkwormForExecutionStage(silkworm, cfg), ), stagedsync.StageHashStateCfg(db, dirs, cfg.HistoryV3), stagedsync.StageTrieCfg(db, checkStateRoot, true, false, dirs.Tmp, blockReader, controlServer.Hd, cfg.HistoryV3, agg), @@ -565,7 +572,7 @@ func NewPipelineStages(ctx context.Context, runInTestMode) } -func NewInMemoryExecution(ctx context.Context, db kv.RwDB, cfg *ethconfig.Config, controlServer *sentry.MultiClient, +func NewInMemoryExecution(ctx context.Context, db kv.RwDB, cfg *ethconfig.Config, controlServer *sentry_multi_client.MultiClient, dirs datadir.Dirs, notifications *shards.Notifications, blockReader services.FullBlockReader, blockWriter *blockio.BlockWriter, agg *state.AggregatorV3, silkworm *silkworm.Silkworm, logger log.Logger) *stagedsync.Sync { return stagedsync.New( @@ -592,7 +599,7 @@ func NewInMemoryExecution(ctx context.Context, db kv.RwDB, cfg *ethconfig.Config cfg.Genesis, cfg.Sync, agg, - silkworm, + silkwormForExecutionStage(silkworm, cfg), ), stagedsync.StageHashStateCfg(db, dirs, cfg.HistoryV3), stagedsync.StageTrieCfg(db, true, true, true, dirs.Tmp, blockReader, controlServer.Hd, cfg.HistoryV3, agg)), diff --git a/turbo/trie/account_node_test.go b/turbo/trie/account_node_test.go index bab99834d1c..0e787a2daa1 100644 --- a/turbo/trie/account_node_test.go +++ b/turbo/trie/account_node_test.go @@ -2,6 +2,7 @@ package trie import ( "crypto/ecdsa" + "github.com/ledgerwatch/erigon-lib/kv/dbutils" "reflect" "testing" @@ -9,7 +10,6 @@ import ( libcommon "github.com/ledgerwatch/erigon-lib/common" "golang.org/x/crypto/sha3" - "github.com/ledgerwatch/erigon/common/dbutils" "github.com/ledgerwatch/erigon/core/types/accounts" "github.com/ledgerwatch/erigon/crypto" ) diff --git a/turbo/trie/delete_subrtee_test.go b/turbo/trie/delete_subrtee_test.go index 9cc4e5d9207..32fe9355adb 100644 --- a/turbo/trie/delete_subrtee_test.go +++ b/turbo/trie/delete_subrtee_test.go @@ -10,7 +10,6 @@ import ( libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/length" - "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/core/types/accounts" "github.com/ledgerwatch/erigon/crypto" ) @@ -49,17 +48,17 @@ func TestTrieDeleteSubtree_ShortNode_Debug(t *testing.T) { key := []byte{uint8(1)} val := []byte{uint8(1)} - keyHash, err := common.HashData(key) + keyHash, err := libcommon.HashData(key) if err != nil { t.Fatal(err) } - addrHash1, err := common.HashData(addr1[:]) + addrHash1, err := libcommon.HashData(addr1[:]) if err != nil { t.Fatal(err) } - addrHash2, err := common.HashData(addr2[:]) + addrHash2, err := libcommon.HashData(addr2[:]) if err != nil { t.Fatal(err) } @@ -365,7 +364,7 @@ func TestAccountNotRemovedAfterRemovingSubtrieAfterAccount(t *testing.T) { if err != nil { t.Fatal(err) } - addrHash, err := common.HashData(crypto.PubkeyToAddress(key.PublicKey).Bytes()) + addrHash, err := libcommon.HashData(crypto.PubkeyToAddress(key.PublicKey).Bytes()) if err != nil { t.Fatal(err) } @@ -377,13 +376,13 @@ func TestAccountNotRemovedAfterRemovingSubtrieAfterAccount(t *testing.T) { } val1 := []byte("1") - dataKey1, err := common.HashData([]byte("1")) + dataKey1, err := libcommon.HashData([]byte("1")) if err != nil { t.Fatal(err) } val2 := []byte("2") - dataKey2, err := common.HashData([]byte("2")) + dataKey2, err := libcommon.HashData([]byte("2")) if err != nil { t.Fatal(err) } diff --git a/turbo/trie/flatdb_sub_trie_loader_test.go b/turbo/trie/flatdb_sub_trie_loader_test.go index 94eb131a23f..b288174365e 100644 --- a/turbo/trie/flatdb_sub_trie_loader_test.go +++ b/turbo/trie/flatdb_sub_trie_loader_test.go @@ -83,13 +83,13 @@ func TestIsBefore(t *testing.T) { assert.Equal(true, is) contract := fmt.Sprintf("2%063x", 0) - storageKey := common.Hex2Bytes(contract + "ffffffff" + fmt.Sprintf("10%062x", 0)) - cacheKey := common.Hex2Bytes(contract + "ffffffff" + "20") + storageKey := libcommon.Hex2Bytes(contract + "ffffffff" + fmt.Sprintf("10%062x", 0)) + cacheKey := libcommon.Hex2Bytes(contract + "ffffffff" + "20") is = keyIsBefore(cacheKey, storageKey) assert.False(is) - storageKey = common.Hex2Bytes(contract + "ffffffffffffffff" + fmt.Sprintf("20%062x", 0)) - cacheKey = common.Hex2Bytes(contract + "ffffffffffffffff" + "10") + storageKey = libcommon.Hex2Bytes(contract + "ffffffffffffffff" + fmt.Sprintf("20%062x", 0)) + cacheKey = libcommon.Hex2Bytes(contract + "ffffffffffffffff" + "10") is = keyIsBefore(cacheKey, storageKey) assert.True(is) } diff --git a/turbo/trie/hashbuilder.go b/turbo/trie/hashbuilder.go index 26e166daee5..18059dcf057 100644 --- a/turbo/trie/hashbuilder.go +++ b/turbo/trie/hashbuilder.go @@ -11,7 +11,6 @@ import ( length2 "github.com/ledgerwatch/erigon-lib/common/length" "golang.org/x/crypto/sha3" - "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/core/types/accounts" "github.com/ledgerwatch/erigon/crypto" "github.com/ledgerwatch/erigon/rlp" @@ -83,11 +82,11 @@ func (hb *HashBuilder) leaf(length int, keyHex []byte, val rlphacks.RlpSerializa return fmt.Errorf("length %d", length) } if hb.proofElement != nil { - hb.proofElement.storageKey = common.CopyBytes(keyHex[:len(keyHex)-1]) + hb.proofElement.storageKey = libcommon.CopyBytes(keyHex[:len(keyHex)-1]) hb.proofElement.storageValue = new(uint256.Int).SetBytes(val.RawBytes()) } key := keyHex[len(keyHex)-length:] - s := &shortNode{Key: common.CopyBytes(key), Val: valueNode(common.CopyBytes(val.RawBytes()))} + s := &shortNode{Key: libcommon.CopyBytes(key), Val: valueNode(libcommon.CopyBytes(val.RawBytes()))} hb.nodeStack = append(hb.nodeStack, s) if err := hb.leafHashWithKeyVal(key, val); err != nil { return err @@ -233,7 +232,7 @@ func (hb *HashBuilder) accountLeaf(length int, keyHex []byte, balance *uint256.I // Root is on top of the stack root = hb.nodeStack[len(hb.nodeStack)-popped-1] if root == nil { - root = hashNode{hash: common.CopyBytes(hb.acc.Root[:])} + root = hashNode{hash: libcommon.CopyBytes(hb.acc.Root[:])} } } popped++ @@ -260,7 +259,7 @@ func (hb *HashBuilder) accountLeaf(length int, keyHex []byte, balance *uint256.I // we capture it with the account proof element. Note, we also store the // full key as this root could be for a different account in the negative // case. - hb.proofElement.storageRootKey = common.CopyBytes(fullKey) + hb.proofElement.storageRootKey = libcommon.CopyBytes(fullKey) hb.proofElement.storageRoot = hb.acc.Root } var accCopy accounts.Account @@ -271,7 +270,7 @@ func (hb *HashBuilder) accountLeaf(length int, keyHex []byte, balance *uint256.I } a := &accountNode{accCopy, root, true, accountCode, accountCodeSize} - s := &shortNode{Key: common.CopyBytes(key), Val: a} + s := &shortNode{Key: libcommon.CopyBytes(key), Val: a} // this invocation will take care of the popping given number of items from both hash stack and node stack, // pushing resulting hash to the hash stack, and nil to the node stack if err = hb.accountLeafHashWithKey(key, popped); err != nil { @@ -373,10 +372,10 @@ func (hb *HashBuilder) extension(key []byte) error { var s *shortNode switch n := nd.(type) { case nil: - branchHash := common.CopyBytes(hb.hashStack[len(hb.hashStack)-length2.Hash:]) - s = &shortNode{Key: common.CopyBytes(key), Val: hashNode{hash: branchHash}} + branchHash := libcommon.CopyBytes(hb.hashStack[len(hb.hashStack)-length2.Hash:]) + s = &shortNode{Key: libcommon.CopyBytes(key), Val: hashNode{hash: branchHash}} case *fullNode: - s = &shortNode{Key: common.CopyBytes(key), Val: n} + s = &shortNode{Key: libcommon.CopyBytes(key), Val: n} default: return fmt.Errorf("wrong Val type for an extension: %T", nd) } @@ -486,7 +485,7 @@ func (hb *HashBuilder) branch(set uint16) error { for digit := uint(0); digit < 16; digit++ { if ((1 << digit) & set) != 0 { if nodes[i] == nil { - f.Children[digit] = hashNode{hash: common.CopyBytes(hashes[hashStackStride*i+1 : hashStackStride*(i+1)])} + f.Children[digit] = hashNode{hash: libcommon.CopyBytes(hashes[hashStackStride*i+1 : hashStackStride*(i+1)])} } else { f.Children[digit] = nodes[i] } @@ -606,7 +605,7 @@ func (hb *HashBuilder) code(code []byte) error { if hb.trace { fmt.Printf("CODE\n") } - codeCopy := common.CopyBytes(code) + codeCopy := libcommon.CopyBytes(code) n := codeNode(codeCopy) hb.nodeStack = append(hb.nodeStack, n) hb.sha.Reset() diff --git a/turbo/trie/intermediate_hashes_test.go b/turbo/trie/intermediate_hashes_test.go index 4128ca453ac..531c6083e1a 100644 --- a/turbo/trie/intermediate_hashes_test.go +++ b/turbo/trie/intermediate_hashes_test.go @@ -2,11 +2,11 @@ package trie import ( "fmt" + "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "strconv" "testing" - "github.com/ledgerwatch/erigon/common" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/stretchr/testify/assert" ) diff --git a/turbo/trie/proof.go b/turbo/trie/proof.go index ae0e5243701..d9dc7ffeb5b 100644 --- a/turbo/trie/proof.go +++ b/turbo/trie/proof.go @@ -7,7 +7,6 @@ import ( libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/hexutility" "github.com/ledgerwatch/erigon-lib/common/length" - "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/core/types/accounts" "github.com/ledgerwatch/erigon/crypto" "github.com/ledgerwatch/erigon/rlp" @@ -33,7 +32,7 @@ func (t *Trie) Prove(key []byte, fromLevel int, storage bool) ([][]byte, error) case *shortNode: if fromLevel == 0 { if rlp, err := hasher.hashChildren(n, 0); err == nil { - proof = append(proof, common.CopyBytes(rlp)) + proof = append(proof, libcommon.CopyBytes(rlp)) } else { return nil, err } @@ -55,7 +54,7 @@ func (t *Trie) Prove(key []byte, fromLevel int, storage bool) ([][]byte, error) case *duoNode: if fromLevel == 0 { if rlp, err := hasher.hashChildren(n, 0); err == nil { - proof = append(proof, common.CopyBytes(rlp)) + proof = append(proof, libcommon.CopyBytes(rlp)) } else { return nil, err } @@ -77,7 +76,7 @@ func (t *Trie) Prove(key []byte, fromLevel int, storage bool) ([][]byte, error) case *fullNode: if fromLevel == 0 { if rlp, err := hasher.hashChildren(n, 0); err == nil { - proof = append(proof, common.CopyBytes(rlp)) + proof = append(proof, libcommon.CopyBytes(rlp)) } else { return nil, err } diff --git a/turbo/trie/retain_list.go b/turbo/trie/retain_list.go index 5bad665aa23..9f768fb2349 100644 --- a/turbo/trie/retain_list.go +++ b/turbo/trie/retain_list.go @@ -20,14 +20,13 @@ import ( "bytes" "encoding/binary" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "math/big" "sort" "github.com/holiman/uint256" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/length" - "github.com/ledgerwatch/erigon/common" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core/types/accounts" ) @@ -64,7 +63,7 @@ type ProofRetainer struct { // set onto the FlatDBTrieLoader via SetProofRetainer before performing its Load // operation in order to appropriately collect the proof elements. func NewProofRetainer(addr libcommon.Address, a *accounts.Account, storageKeys []libcommon.Hash, rl *RetainList) (*ProofRetainer, error) { - addrHash, err := common.HashData(addr[:]) + addrHash, err := libcommon.HashData(addr[:]) if err != nil { return nil, err } @@ -72,7 +71,7 @@ func NewProofRetainer(addr libcommon.Address, a *accounts.Account, storageKeys [ storageHexKeys := make([][]byte, len(storageKeys)) for i, sk := range storageKeys { - storageHash, err := common.HashData(sk[:]) + storageHash, err := libcommon.HashData(sk[:]) if err != nil { return nil, err } diff --git a/turbo/trie/retain_list_test.go b/turbo/trie/retain_list_test.go index 9c3196bf652..a9488efb54e 100644 --- a/turbo/trie/retain_list_test.go +++ b/turbo/trie/retain_list_test.go @@ -1,11 +1,11 @@ package trie import ( + "github.com/ledgerwatch/erigon-lib/common/hexutil" "testing" "github.com/holiman/uint256" libcommon "github.com/ledgerwatch/erigon-lib/common" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core/types/accounts" "github.com/stretchr/testify/require" ) diff --git a/turbo/trie/structural_branch_test.go b/turbo/trie/structural_branch_test.go index 39f8f612655..aebde55d551 100644 --- a/turbo/trie/structural_branch_test.go +++ b/turbo/trie/structural_branch_test.go @@ -42,7 +42,7 @@ func TestIHCursor(t *testing.T) { k := common.FromHex(ks) integrity.AssertSubset(k, hasTree, hasState) integrity.AssertSubset(k, hasHash, hasState) - _ = tx.Put(kv.TrieOfAccounts, k, common.CopyBytes(trie.MarshalTrieNodeTyped(hasState, hasTree, hasHash, hashes, newV))) + _ = tx.Put(kv.TrieOfAccounts, k, libcommon.CopyBytes(trie.MarshalTrieNodeTyped(hasState, hasTree, hasHash, hashes, newV))) } put("00", 0b0000000000000010, 0b0000000000000000, 0b0000000000000010, []libcommon.Hash{hash}) diff --git a/turbo/trie/trie_root.go b/turbo/trie/trie_root.go index 757bf5807ff..6154815171f 100644 --- a/turbo/trie/trie_root.go +++ b/turbo/trie/trie_root.go @@ -5,6 +5,8 @@ import ( "encoding/binary" "encoding/hex" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" + dbutils2 "github.com/ledgerwatch/erigon-lib/kv/dbutils" "math/bits" "time" @@ -14,9 +16,6 @@ import ( "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/log/v3" - "github.com/ledgerwatch/erigon/common" - "github.com/ledgerwatch/erigon/common/dbutils" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core/types/accounts" "github.com/ledgerwatch/erigon/turbo/rlphacks" ) @@ -780,7 +779,7 @@ func (c *AccTrieCursor) Next() (k, v []byte, hasTree bool, err error) { } if c.k[c.lvl] == nil { c.cur = nil - c.SkipState = c.SkipState && !dbutils.NextNibblesSubtree(c.prev, &c.next) + c.SkipState = c.SkipState && !dbutils2.NextNibblesSubtree(c.prev, &c.next) return nil, nil, false, nil } ok, err := c._consume() @@ -881,7 +880,7 @@ func (c *AccTrieCursor) _nextSiblingOfParentInMem() bool { } func (c *AccTrieCursor) _nextSiblingInDB() error { - ok := dbutils.NextNibblesSubtree(c.k[c.lvl], &c.next) + ok := dbutils2.NextNibblesSubtree(c.k[c.lvl], &c.next) if !ok { c.k[c.lvl] = nil return nil @@ -978,7 +977,7 @@ func (c *AccTrieCursor) _next() (k, v []byte, hasTree bool, err error) { for { if c.k[c.lvl] == nil { c.cur = nil - c.SkipState = c.SkipState && !dbutils.NextNibblesSubtree(c.prev, &c.next) + c.SkipState = c.SkipState && !dbutils2.NextNibblesSubtree(c.prev, &c.next) return nil, nil, false, nil } @@ -1101,7 +1100,7 @@ func (c *StorageTrieCursor) Next() (k, v []byte, hasTree bool, err error) { return []byte{}, nil, false, err } if c.k[c.lvl] == nil { - c.skipState = c.skipState && !dbutils.NextNibblesSubtree(c.prev, &c.next) + c.skipState = c.skipState && !dbutils2.NextNibblesSubtree(c.prev, &c.next) c.cur = nil return nil, nil, false, nil } @@ -1257,7 +1256,7 @@ func (c *StorageTrieCursor) _nextSiblingOfParentInMem() bool { } func (c *StorageTrieCursor) _nextSiblingInDB() error { - ok := dbutils.NextNibblesSubtree(c.k[c.lvl], &c.next) + ok := dbutils2.NextNibblesSubtree(c.k[c.lvl], &c.next) if !ok { c.k[c.lvl] = nil return nil @@ -1287,7 +1286,7 @@ func (c *StorageTrieCursor) _next() (k, v []byte, hasTree bool, err error) { for { if c.k[c.lvl] == nil { c.cur = nil - c.skipState = c.skipState && !dbutils.NextNibblesSubtree(c.prev, &c.next) + c.skipState = c.skipState && !dbutils2.NextNibblesSubtree(c.prev, &c.next) return nil, nil, false, nil } @@ -1374,7 +1373,7 @@ func isDenseSequence(prev []byte, next []byte) bool { if len(prev) == 0 && len(next) == 0 { return false } - ok := dbutils.NextNibblesSubtree(prev, &isSequenceBuf) + ok := dbutils2.NextNibblesSubtree(prev, &isSequenceBuf) if len(prev) > 0 && !ok { return true } @@ -1396,7 +1395,7 @@ var isSequenceBuf = make([]byte, 256) func firstNotCoveredPrefix(prev, prefix, buf []byte) ([]byte, bool) { if len(prev) > 0 { - if !dbutils.NextNibblesSubtree(prev, &buf) { + if !dbutils2.NextNibblesSubtree(prev, &buf) { return buf, true } } else { @@ -1456,12 +1455,12 @@ func keyIsBefore(k1, k2 []byte) bool { func UnmarshalTrieNodeTyped(v []byte) (hasState, hasTree, hasHash uint16, hashes []libcommon.Hash, rootHash libcommon.Hash) { hasState, hasTree, hasHash, v = binary.BigEndian.Uint16(v), binary.BigEndian.Uint16(v[2:]), binary.BigEndian.Uint16(v[4:]), v[6:] if bits.OnesCount16(hasHash)+1 == len(v)/length2.Hash { - rootHash.SetBytes(common.CopyBytes(v[:32])) + rootHash.SetBytes(libcommon.CopyBytes(v[:32])) v = v[32:] } hashes = make([]libcommon.Hash, len(v)/length2.Hash) for i := 0; i < len(hashes); i++ { - hashes[i].SetBytes(common.CopyBytes(v[i*length2.Hash : (i+1)*length2.Hash])) + hashes[i].SetBytes(libcommon.CopyBytes(v[i*length2.Hash : (i+1)*length2.Hash])) } return } @@ -1488,7 +1487,7 @@ func MarshalTrieNodeTyped(hasState, hasTree, hasHash uint16, h []libcommon.Hash, } func StorageKey(addressHash []byte, incarnation uint64, prefix []byte) []byte { - return dbutils.GenerateCompositeStoragePrefix(addressHash, incarnation, prefix) + return dbutils2.GenerateCompositeStoragePrefix(addressHash, incarnation, prefix) } func MarshalTrieNode(hasState, hasTree, hasHash uint16, hashes, rootHash []byte, buf []byte) []byte { @@ -1510,11 +1509,11 @@ func CastTrieNodeValue(hashes, rootHash []byte) []libcommon.Hash { to := make([]libcommon.Hash, len(hashes)/length2.Hash+len(rootHash)/length2.Hash) i := 0 if len(rootHash) > 0 { - to[0].SetBytes(common.CopyBytes(rootHash)) + to[0].SetBytes(libcommon.CopyBytes(rootHash)) i++ } for j := 0; j < len(hashes)/length2.Hash; j++ { - to[i].SetBytes(common.CopyBytes(hashes[j*length2.Hash : (j+1)*length2.Hash])) + to[i].SetBytes(libcommon.CopyBytes(hashes[j*length2.Hash : (j+1)*length2.Hash])) i++ } return to diff --git a/turbo/trie/trie_root_test.go b/turbo/trie/trie_root_test.go index 9db6e3394aa..efec782137a 100644 --- a/turbo/trie/trie_root_test.go +++ b/turbo/trie/trie_root_test.go @@ -4,6 +4,8 @@ import ( "bytes" "context" "encoding/binary" + "github.com/ledgerwatch/erigon-lib/common/hexutil" + "github.com/ledgerwatch/erigon-lib/kv/dbutils" "math/big" "testing" "time" @@ -13,8 +15,6 @@ import ( "github.com/ledgerwatch/erigon-lib/common/hexutility" "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/erigon-lib/kv/memdb" - "github.com/ledgerwatch/erigon/common/dbutils" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core/types/accounts" "github.com/ledgerwatch/erigon/crypto" "github.com/ledgerwatch/erigon/eth/stagedsync" diff --git a/turbo/trie/trie_test.go b/turbo/trie/trie_test.go index e6e88496854..1e0f59a298b 100644 --- a/turbo/trie/trie_test.go +++ b/turbo/trie/trie_test.go @@ -76,31 +76,31 @@ func TestLargeValue(t *testing.T) { // TestRandomCases tests som cases that were found via random fuzzing func TestRandomCases(t *testing.T) { var rt = []randTestStep{ - {op: 6, key: common.Hex2Bytes(""), value: common.Hex2Bytes("")}, // step 0 - {op: 6, key: common.Hex2Bytes(""), value: common.Hex2Bytes("")}, // step 1 - {op: 0, key: common.Hex2Bytes("d51b182b95d677e5f1c82508c0228de96b73092d78ce78b2230cd948674f66fd1483bd"), value: common.Hex2Bytes("0000000000000002")}, // step 2 - {op: 2, key: common.Hex2Bytes("c2a38512b83107d665c65235b0250002882ac2022eb00711552354832c5f1d030d0e408e"), value: common.Hex2Bytes("")}, // step 3 - {op: 3, key: common.Hex2Bytes(""), value: common.Hex2Bytes("")}, // step 4 - {op: 3, key: common.Hex2Bytes(""), value: common.Hex2Bytes("")}, // step 5 - {op: 6, key: common.Hex2Bytes(""), value: common.Hex2Bytes("")}, // step 6 - {op: 3, key: common.Hex2Bytes(""), value: common.Hex2Bytes("")}, // step 7 - {op: 0, key: common.Hex2Bytes("c2a38512b83107d665c65235b0250002882ac2022eb00711552354832c5f1d030d0e408e"), value: common.Hex2Bytes("0000000000000008")}, // step 8 - {op: 0, key: common.Hex2Bytes("d51b182b95d677e5f1c82508c0228de96b73092d78ce78b2230cd948674f66fd1483bd"), value: common.Hex2Bytes("0000000000000009")}, // step 9 - {op: 2, key: common.Hex2Bytes("fd"), value: common.Hex2Bytes("")}, // step 10 - {op: 6, key: common.Hex2Bytes(""), value: common.Hex2Bytes("")}, // step 11 - {op: 6, key: common.Hex2Bytes(""), value: common.Hex2Bytes("")}, // step 12 - {op: 0, key: common.Hex2Bytes("fd"), value: common.Hex2Bytes("000000000000000d")}, // step 13 - {op: 6, key: common.Hex2Bytes(""), value: common.Hex2Bytes("")}, // step 14 - {op: 1, key: common.Hex2Bytes("c2a38512b83107d665c65235b0250002882ac2022eb00711552354832c5f1d030d0e408e"), value: common.Hex2Bytes("")}, // step 15 - {op: 3, key: common.Hex2Bytes(""), value: common.Hex2Bytes("")}, // step 16 - {op: 0, key: common.Hex2Bytes("c2a38512b83107d665c65235b0250002882ac2022eb00711552354832c5f1d030d0e408e"), value: common.Hex2Bytes("0000000000000011")}, // step 17 - {op: 5, key: common.Hex2Bytes(""), value: common.Hex2Bytes("")}, // step 18 - {op: 3, key: common.Hex2Bytes(""), value: common.Hex2Bytes("")}, // step 19 + {op: 6, key: libcommon.Hex2Bytes(""), value: libcommon.Hex2Bytes("")}, // step 0 + {op: 6, key: libcommon.Hex2Bytes(""), value: libcommon.Hex2Bytes("")}, // step 1 + {op: 0, key: libcommon.Hex2Bytes("d51b182b95d677e5f1c82508c0228de96b73092d78ce78b2230cd948674f66fd1483bd"), value: libcommon.Hex2Bytes("0000000000000002")}, // step 2 + {op: 2, key: libcommon.Hex2Bytes("c2a38512b83107d665c65235b0250002882ac2022eb00711552354832c5f1d030d0e408e"), value: libcommon.Hex2Bytes("")}, // step 3 + {op: 3, key: libcommon.Hex2Bytes(""), value: libcommon.Hex2Bytes("")}, // step 4 + {op: 3, key: libcommon.Hex2Bytes(""), value: libcommon.Hex2Bytes("")}, // step 5 + {op: 6, key: libcommon.Hex2Bytes(""), value: libcommon.Hex2Bytes("")}, // step 6 + {op: 3, key: libcommon.Hex2Bytes(""), value: libcommon.Hex2Bytes("")}, // step 7 + {op: 0, key: libcommon.Hex2Bytes("c2a38512b83107d665c65235b0250002882ac2022eb00711552354832c5f1d030d0e408e"), value: libcommon.Hex2Bytes("0000000000000008")}, // step 8 + {op: 0, key: libcommon.Hex2Bytes("d51b182b95d677e5f1c82508c0228de96b73092d78ce78b2230cd948674f66fd1483bd"), value: libcommon.Hex2Bytes("0000000000000009")}, // step 9 + {op: 2, key: libcommon.Hex2Bytes("fd"), value: libcommon.Hex2Bytes("")}, // step 10 + {op: 6, key: libcommon.Hex2Bytes(""), value: libcommon.Hex2Bytes("")}, // step 11 + {op: 6, key: libcommon.Hex2Bytes(""), value: libcommon.Hex2Bytes("")}, // step 12 + {op: 0, key: libcommon.Hex2Bytes("fd"), value: libcommon.Hex2Bytes("000000000000000d")}, // step 13 + {op: 6, key: libcommon.Hex2Bytes(""), value: libcommon.Hex2Bytes("")}, // step 14 + {op: 1, key: libcommon.Hex2Bytes("c2a38512b83107d665c65235b0250002882ac2022eb00711552354832c5f1d030d0e408e"), value: libcommon.Hex2Bytes("")}, // step 15 + {op: 3, key: libcommon.Hex2Bytes(""), value: libcommon.Hex2Bytes("")}, // step 16 + {op: 0, key: libcommon.Hex2Bytes("c2a38512b83107d665c65235b0250002882ac2022eb00711552354832c5f1d030d0e408e"), value: libcommon.Hex2Bytes("0000000000000011")}, // step 17 + {op: 5, key: libcommon.Hex2Bytes(""), value: libcommon.Hex2Bytes("")}, // step 18 + {op: 3, key: libcommon.Hex2Bytes(""), value: libcommon.Hex2Bytes("")}, // step 19 // FIXME: fix these testcases for Erigon //{op: 0, key: common.Hex2Bytes("d51b182b95d677e5f1c82508c0228de96b73092d78ce78b2230cd948674f66fd1483bd"), value: common.Hex2Bytes("0000000000000014")}, // step 20 //{op: 0, key: common.Hex2Bytes("d51b182b95d677e5f1c82508c0228de96b73092d78ce78b2230cd948674f66fd1483bd"), value: common.Hex2Bytes("0000000000000015")}, // step 21 //{op: 0, key: common.Hex2Bytes("c2a38512b83107d665c65235b0250002882ac2022eb00711552354832c5f1d030d0e408e"), value: common.Hex2Bytes("0000000000000016")}, // step 22 - {op: 5, key: common.Hex2Bytes(""), value: common.Hex2Bytes("")}, // step 23 + {op: 5, key: libcommon.Hex2Bytes(""), value: libcommon.Hex2Bytes("")}, // step 23 //{op: 1, key: common.Hex2Bytes("980c393656413a15c8da01978ed9f89feb80b502f58f2d640e3a2f5f7a99a7018f1b573befd92053ac6f78fca4a87268"), value: common.Hex2Bytes("")}, // step 24 //{op: 1, key: common.Hex2Bytes("fd"), value: common.Hex2Bytes("")}, // step 25 } diff --git a/turbo/trie/trie_transform.go b/turbo/trie/trie_transform.go index 6fba471cca3..bf2b0dcb35b 100644 --- a/turbo/trie/trie_transform.go +++ b/turbo/trie/trie_transform.go @@ -1,7 +1,7 @@ package trie import ( - "github.com/ledgerwatch/erigon/common" + "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon/core/types/accounts" ) diff --git a/wmake.ps1 b/wmake.ps1 index 5f8b42d6c65..ddb01d1e631 100644 --- a/wmake.ps1 +++ b/wmake.ps1 @@ -405,7 +405,7 @@ if (!Test-Path -Path [string](Join-Path $MyContext.Directory "\.git") -PathType if(!(Test-Git-Installed)) { exit 1 } ## Test GO language is installed AND min version -if(!(Test-GO-Installed "1.19")) { exit 1 } +if(!(Test-GO-Installed "1.20")) { exit 1 } # Build erigon binaries Set-Variable -Name "Erigon" -Value ([hashtable]::Synchronized(@{})) -Scope Script